<chapter id="technical-overview">
<title
>Panoramica tecnica</title>

<para
>Questo capitolo mira a dare una panoramica tecnica di &kdeprint; destinata ai non programmatori.</para>

<para
>&kdeprint; è un nuovo e rivoluzionario strumento atto a facilitare l'accesso ai servizi di stampa sia agli utenti che agli sviluppatori di &kde;</para>

<sect1 id="brief-description">
<title
>Breve descrizione di &kdeprint;</title>

<para
>Puoi accedere alle funzioni di &kdeprint; in diversi modi: attraverso il gestore di stampa in &kcontrol;, attraverso il comando<command
>kprinter</command
> o attraverso la finestra di dialogo che appare quando vuoi stampare.</para>

<sect2 id="what-kdeprint-is-not">
<title
>Che cosa <emphasis
>non</emphasis
> è</title>

<para
>&kdeprint; <emphasis
>non</emphasis
> è un'alternativa al sottosistema di stampa. &kdeprint; quindi <emphasis
>non</emphasis
> fornisce servizi di accodamento, e <emphasis
>non</emphasis
> esegue l'elaborazione di base di &PostScript; o altri dati di stampa.</para>

</sect2>

<sect2 id="what-kde-print-is">
<title
>Ciò che <emphasis
>è</emphasis
></title>
<para
>&kdeprint; è uno strato intermedio fra il meccanismo di accodamento ed il sottosistema di elaborazione di stampa (come installato), e l'applicazione che cerca di stampare. &kdeprint; fornisce una interfaccia comune agli sviluppatori ed agli utenti di &kde;, verso i vari sottosistemi di stampa supportati. Allo stesso tempo è personalizzabile ed altamente configurabile.</para>

<para
>&kdeprint; è facile da utilizzare sia per gli sviluppatori di &kde; che per gli utenti finali. Gli sviluppatori possono convertire le loro applicazioni con variazioni minime per usare &kdeprint; invece del vecchio <quote
>sistema</quote
> di stampa di &Qt;. Gli utenti possono facilmente scegliere e configurare il loro sottosistema di stampa.</para>

<para
>Come riferiferimento per i nuovi utenti &kde;: &Qt; è la libreria di base ed insieme di strumenti grafici utilizzati da tutte le appliaczioni &kde;; &Qt; è sviluppato da TrollTech, un'azienda norvegese produttrice di programmi.</para>

</sect2>

</sect1>

<sect1 id="different-users">
<title
>&kdeprint; - Usi diversi per diverse persone</title>

<para
>&kdeprint; ha diversi aspetti per diverse persone.</para>

<sect2 id="what-users-can-do">
<title
>Ciò che utenti ed amministratori possono fare con &kdeprint;</title>

<para
>&kdeprint; permette ad utenti e/o amministratori l'accesso, a seconda dei loro diritti, ai sottosistemi di stampa (&CUPS;, <acronym
>LPD</acronym
>, <acronym
>RLPR</acronym
>, <application
>LPRng</application
>, <application
>PDQ</application
> &etc;) attraverso un'interfaccia grafica &kde;. Usando &kdeprint;, essi possono stampare, amministrare i lavori, le stampanti ed il demone di stampa, tutto in modo agevole.</para>

<para
>Agli utenti esperti piacerà la capacità di inserire un qualsiasi filtro elaborativo per la stampa fra l'output della loro applicazione e l'input del sottosistema di stampa selezionato. Alcuni esempi di ciò sono già forniti con &kdeprint; <quote
>di base</quote
>. Continua a leggere.</para>

</sect2>


<sect2 id="what-developers-can-do">
<title
>Quello che gli sviluppatori &kde; possono realizzare con esso...</title>

<para
>Se uno sviluppatore &kde; ha bisogno dell'accesso alla stampa da parte della sua applicazione, non deve scrivere la funzionalità di stampa da zero. Prima di &kde; 2.2 questo servizio era fornito dalla classe <classname
>QPrinter</classname
>, una funzione di libreria degli strumenti &Qt;. La classe<classname
>QPrinter</classname
> si basava sul vecchio <quote
>Line Printer Daemon</quote
> (<acronym
>LPD</acronym
>). La libreria &kdeprint; si basa saldamente sul più moderno Common &UNIX; Printing System (&CUPS;), pur mantenendo la compatibilità retroattiva con <acronym
>LPD</acronym
> ed altri sistemi di stampa preesistenti o meno elaborati . Esso <quote
>lascia aperta la porta</quote
> ad ogni nuovo sviluppo che può capitare.</para>

<para
>Usare la nuova classe &kdeprint; nelle proprie applicazioni richiede agli sviluppatori &kde; solo cambiamenti minimi nel loro codice: essi devono solo sostituire ogni chiamata alla classe <classname
>QPrinter</classname
>, con una alla classe <classname
>KPrinter</classname
>. Con la sostituzione di una (!) lettera in qualche occasione ed automaticamente, il loro lavoro è terminato; la loro applicazione può utilizzare tutte le funzionalità della nuova libreria &kdeprint;.</para>

<para
>Gli sviluppatore più ambiziosi o con necessità speciali possono fare di più: nonstante &kdeprint; abbia un ambiente ricco di funzionalità, essi sono ancora in grado di presonalizzare la finestra di dialogo della stampa della loro applicazione creando un'ulteriore <quote
>linguetta</quote
>, dove le loro estensioni a &kdeprint; troveranno il loro posto.</para>


<para
>Quest'ultima funzionalità non è stata molto usata all'interno di &kde;, dal momento che gli sviluppatori non sono interamente coscienti della potenza di &kdeprint;. Aspettiamoci che nel futuro prossimo, invece, ciò accada più spesso. Un esempio che ho scoperto riguarda l'applicazione &kcron;. Essa lascia modificare il file crontab attraverso una interfaccia grafica. Gli sviluppatori hanno implementato una funzionalità di stampa che ti lascia scegliere (o all'utente <systemitem class="username"
>root</systemitem
>) se vuoi stampare l'intero file crontab (per tutti gli utenti) o solo la parte selezionata. Puoi vedere gli effetti su &kdeprint; nelle schermate seguenti.</para>

<para
>Quest'immagine mostra un esempio dell'applicazione di servizio &kcron;. <screenshot>
<screeninfo
>programma di utilità &kcron;: un piccolo esempio di lavori temporizzati di sistema come visualizzato attraverso la <acronym
>GUI</acronym
>&GUI;di &kde;.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kcron_to_be_printed.png"
format="PNG"/></imageobject>
<textobject>
<phrase
>Gli sviluppatori &kcron; ti lasciano scegliere se stampare l'intera tabella di cron o solo la parte selezionata.</phrase
></textobject>
</mediaobject>
</screenshot>
</para>

<para
>La finestra di dialogo per configurare le opzioni di stampa di &kcron;: la linguetta aggiuntiva intitolata <guilabel
>Opzioni di crons</guilabel
> è realizzata in &kcron;, non &kdeprint;; è un'estensione speciale aggiunta dagli sviluppatori di &kcron; per la stampa, non originata da &kdeprint; ma da esso eseguita. Gli sviluppatori di altre applicazioni sono liberi di implementare le proprie funzionalità, se ritengono di averne bisogno.</para>


<screenshot>
<screeninfo
>estensione di &kcron; alla finestra di dialogo di &kdeprint;.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter_with_kcron_developer_special.png"
format="PNG"/></imageobject>
<textobject>
<phrase
>estensione di &kcron; alla finestra di dialogo di &kdeprint;.</phrase
></textobject>
<caption>
<para
>estensione di &kcron; alla finestra di dialogo di &kdeprint;.</para>
</caption>
</mediaobject>
</screenshot>

</sect2>

<sect2>
<title
>Ciò che &kdeprint; offre a tutti...</title>

<para
>L'interfaccia di facile utilizzo di &kdeprint; verso tutti i sottosistemi di stampa supportati non elimina certo la tradizionale debolezza di base di alcuni di questi sistemi ma ne allevia qualche difetto. Utenti diversi possono utilizzare diversi sistemi di stampa sullo stesso computer. Un utente è perfino libero di cambiare <quote
>al volo</quote
>  il sottositema di stampa da utilizzare per il prossimo lavoro dalla finestra di dialogo di stampa. Ciò è possibile se sistemi diversi sono installati in un modo tale che <quote
>non si diano fastidio a vicenda</quote
>.</para>

<para
>La maggior parte degli utenti &UNIX; è abituata alla stampa tramite <acronym
>LPD</acronym
>. <acronym
>LPD</acronym
> fornisce solo funzionalità di stampa di base, è molto rigida e non utilizza le svariate opzioni dei sistemi di stampa più moderni come &CUPS;. Anche se è capace di lavorare in remoto (come ogni protocollo basato su TCP/IP), <acronym
>LPD</acronym
> manca la capacità di effettuare comunicazioni bidirezionali, autenticazione, controllo di accesso e supporto alla cifratura.</para>

<para
>&kdeprint; può utilizzare &CUPS; per supportare:</para>

<itemizedlist>
<listitem>
<para
>Interrogazione della <acronym
>LAN</acronym
> per la ricerca delle stampanti disponibili.</para>
</listitem>
<listitem>
<para
>Autenticazione di tipo basic, digest, e via certificati,</para>
</listitem>
<listitem>
<para
>Controllo di accesso basato su indirizzi <acronym
>IP</acronym
>, indirizzi di rete, maschere di rete, nomi di computer e di dominio.</para>
</listitem>
<listitem>
<para
>e cifratura dei dati di stampa a 128-Bit TLS o SSL3 per prevenire letture non autorizzate o almeno per renderle molto più difficili.</para>
</listitem>
</itemizedlist>

<para
>Ciò rende &kdeprint; una soluzione molto più robusta ed affidabile rispetto all'utlilizzo del venerabile<acronym
>LPD</acronym
>.</para>

</sect2>
<sect2>
<title
>Come accedere a &kdeprint; </title>

<para
>Puoi accedere a &kdeprint; o ad una sua parte in quattro diversi modi:</para>

<itemizedlist>
<listitem
><para
>attraverso la tua applicazione: se richiami la finestra di dialogo di stampa (usando <menuchoice
><guilabel
>File</guilabel
> <guilabel
>Stampa...</guilabel
></menuchoice
>) o il pulsante recante la piccola icona della stampante; ciò apre la finestra di dialogo della stampante.</para
></listitem>

<listitem
><para
>attraverso il comando <command
>kprinter</command
> in un <application
>terminale</application
> o in una finestra di &konsole; o dalla finestra mini-<acronym
>CLI</acronym
> <guilabel
>Esegui comando...</guilabel
>: anche queste operazioni aprono la finestra di dialogo di stampa.</para
></listitem>

<listitem
><para
>dal pulsante <inlinemediaobject
><imageobject
> <imagedata fileref="kcontrol-icon.png" format="PNG"/></imageobject
> </inlinemediaobject
>, avvia &kcontrol;, poi scegli <menuchoice
><guilabel
>Amministrazione di sistema</guilabel
><guilabel
>Gestore delle stampe</guilabel
></menuchoice
>. Questa azione apre la parte amministrativa di &kdeprint; che è parte di &kcontrolcenter; e ti lascia anche passare ad altre parti di &kcontrol;</para
></listitem>

<listitem
><para
>da interfaccia a linea di comando (&konsole; o mini-<acronym
>CLI</acronym
>) scrivi <userinput
> <command
>kcmshell</command
> <option
>printers</option
></userinput
>. In questo modo si apre solo la parte di &kcontrol; relativa solo a &kdeprint; per cambiare le tue impostazioni. </para
></listitem>
</itemizedlist>
<screenshot>
<screeninfo
>finestra di dialogo di &kprinter; da attivare dalla finestra <guilabel
>Esegui comando...</guilabel
></screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter_called_from_run_command.png"
format="PNG"/></imageobject>
<textobject>
<phrase
>Attivando la finestra di dialogo di &kprinter; dalla finestra <guilabel
>Esegui comando...</guilabel
>.</phrase
></textobject>
<caption
><para
>Attivando la finestra di dialogo di &kprinter; dalla finestra <guilabel
>Esegui comando...</guilabel
>.</para
></caption>
</mediaobject>
</screenshot>

<!-- TODO: This one ought to be a screenshot LW. --> <para
>Ecco un'immagine eseguita con &kivio; della finestra di dialogo di &kprinter; come appare dopo essere stata attivata... Puoi sempre aggiungere una nuova stampante facendo clic sul piccolo pulsante<guiicon
>Assistente</guiicon
> (marcato rosso/giallo in questa immagine).</para>
  
<screenshot>
<screeninfo
>&kprinter; finestra di dialogo attivata (&kivio; disegno in bozza) </screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter-kivio.png"
format="PNG"/></imageobject>
<textobject>
<phrase
>&kprinter; finestra di dialogo attivata (&kivio; disegno in bozza)</phrase
></textobject>
<caption
><para
>&kprinter; finestra di dialogo attivata (&kivio; disegno in bozza)</para
></caption>
</mediaobject>
</screenshot>

</sect2>

</sect1>

</chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:0
sgml-indent-data:true
sgml-parent-document:"index.docbook" "book"
End:
-->
