<chapter id="technical-overview">
<title
>Introdução Técnica</title>

<para
>Este capítulo pretende dar uma vista geral técnica sobre o &kdeprint; que seja compreensível para os não-programadores.</para>

<para
>O &kdeprint; é uma ferramenta nova e revolucionária para permitir um fácil acesso aos serviços de impressão quer para os utilizadores quer para os programadores do &kde;.</para>

<sect1 id="brief-description">
<title
>Uma Breve Descrição do &kdeprint;</title>

<para
>Podes aceder às funções do &kdeprint; de várias formas diferentes: através do Gestor de Impressão no &kcontrol;, através do comando <command
>kprinter</command
> ou através da janela que aparece quando queres imprimir.</para>

<sect2 id="what-kdeprint-is-not">
<title
>O que <emphasis
>não</emphasis
> é</title>

<para
>O &kdeprint; <emphasis
>não</emphasis
> é um substituto do sistema de impressão em si. Como tal, o &kdeprint; <emphasis
>não</emphasis
> define o escalonamento e <emphasis
>não</emphasis
> realiza o processamento básico de &PostScript; ou de outros dados de impressão.</para>

</sect2>

<sect2 id="what-kde-print-is">
<title
>O que <emphasis
>é</emphasis
></title>
<para
>O &kdeprint; é uma camada intermédia entre o escalonamento e o sub-sistema de processamento dos dados de impressão instalado, e a aplicação que pretende imprimir. O &kdeprint; oferece uma interface comum para os programadores e utilizadores do &kde; entre os vários sub-sistemas de impressão suportados. Ao mesmo tempo é altamente personalizado.</para>

<para
>O &kdeprint; é fácil de usar para os programadores e utilizadores do &kde;. Os programadores podem alterar as suas aplicações com o mínimo de alterações de modo a passarem a usar o &kdeprint; em vez do <quote
>sistema</quote
> de impressão antigo do &Qt;. Os utilizadores podem escolher e configurar facilmente o sub-sistema de impressão deles.</para>

<para
>Como referência para os novos utilizadores do &kde;: o &Qt; é a biblioteca básica gráfica que é usada por todas as aplicações do &kde;; o &Qt; é desenvolvido pela TrollTech, uma companhia de 'software' norueguesa.</para>

</sect2>

</sect1>

<sect1 id="different-users">
<title
>&kdeprint; -- Utilização Diferente do &kdeprint; para Diferentes Pessoas</title>

<para
>O &kdeprint; tem diferentes vistas para diferentes pessoas.</para>

<sect2 id="what-users-can-do">
<title
>O que os utilizadores e os administradores podem fazer com o &kdeprint;</title>

<para
>O &kdeprint; permite aos utilizadores e/ou administradores, dependendo dos seus direitos, acederem aos sub-sistemas de impressão (o &CUPS;, o <acronym
>LPD</acronym
>, o <acronym
>RLPR</acronym
>, o <application
>LPRng</application
>, o <application
>PDQ</application
> &etc;) através de uma interface de utilizador gráfica do &kde; (&GUI;). Através do &kdeprint;, podem imprimir, administrar as tarefas, impressoras e o servidor de impressão de uma forma confortável.</para>

<para
>Os utilizadores experientes gostarão da possibilidade de adicionar qualquer filtro funcional dos dados de impressão entre a aplicação e o servidor de impressão. Alguns desses exemplos vêm já com o &kdeprint; <quote
>básico</quote
>. O utilizador poderá confirmá-lo.</para>

</sect2>


<sect2 id="what-developers-can-do">
<title
>O que os programadores do &kde; podem fazer com ele...</title>

<para
>Se um programador do &kde; necessita de acesso a impressoras para a sua aplicação, não codifica as funções de impressão do zero. Antes do &kde; 2.2 este serviço era disponibilizado pela classe <classname
>QPrinter</classname
>, uma função da biblioteca &Qt;. A classe <classname
>QPrinter</classname
> baseava-se no desactualizado <quote
>Line Printer Daemon</quote
>(<acronym
>LPD</acronym
>). A biblioteca do &kdeprint; baseia-se firmemente no sistema mais moderno <quote
>Common &UNIX; Printing System</quote
> (&CUPS;), mantendo à mesma a compatibilidade com o <acronym
>LPD</acronym
> e outros sistemas legados ou menos elaborados, e também <quote
>deixando a porta aberta</quote
> para qualquer novo desenvolvimento que possa ocorrer.</para>

<para
>Para os programadores do &kde; usarem a nova classe do &kdeprint; nas suas aplicações precisam de efectuar alterações mínimas do código: para cada chamada à classe <classname
>QPrinter</classname
>, só precisam de a alterar para <classname
>KPrinter</classname
>. Basta mudar uma (!) letra em alguns sítios, e é tudo; as suas aplicações passam a tirar partido de todas as funcionalidade da biblioteca &kdeprint;.</para>

<para
>Os programadores mais ambiciosos, ou aqueles com necessidades especiais podem fazer mais: é-lhes possível personalizar à mesma a janela de impressão da sua aplicação, permitindo a adição de uma nova <quote
>secção</quote
>, onde poderão ser colocadas as suas extensões ao &kdeprint; normal.</para>


<para
>Esta última funcionalidade não está a ser largamente usada no &kde; até agora, dado que os programadores ainda não têm o conhecimento completo das potencialidades do &kdeprint;. Espere mais algumas destas coisas num futuro próximo. Um exemplo que foi descoberto foi a aplicação &kcron;. Permite ao utilizador editar o 'crontab' através de uma interface gráfica. Os programadores implementaram uma funcionalidade de impressão que lhe permite (ou ao <systemitem class="username"
>root</systemitem
>) escolher se deseja imprimir o 'crontab' completo (para todos os utilizadores) ou apenas a parte seleccionada. Poderá ver os efeitos no &kdeprint; nas imagens seguintes.</para>

<para
>Esta imagem apresenta uma amostra do utilitário &kcron;. <screenshot>
<screeninfo
>O utilitário &kcron;: uma pequena amostra das tarefas do 'cron' de um sistema mostradas na interface do &kde;.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kcron_to_be_printed.png"
format="PNG"/></imageobject>
<textobject>
<phrase
>Os programadores do &kcron; permitem-te imprimir toda a tabela do cron ou apenas a parte seleccionada.</phrase
></textobject>
</mediaobject>
</screenshot>
</para>

<para
>A janela para configurar as opções de impressão do &kcron;: a secção adicional <guilabel
>Opções do Cron</guilabel
> provém do &kcron;, não do &kdeprint;; é uma extensão especial adicionada pelos programadores do &kcron; para fins de impressão que, não sendo originárias de, são executadas pelo &kdeprint;. Os programadores das outras aplicações têm a liberdade para adicionar as suas próprias funcionalidades, se sentirem a necessidade.</para>


<screenshot>
<screeninfo
>A adição do &kcron; à janela do &kdeprint;.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter_with_kcron_developer_special.png"
format="PNG"/></imageobject>
<textobject>
<phrase
>A adição do &kcron; à janela do &kdeprint;.</phrase
></textobject>
<caption>
<para
>A adição do &kcron; à janela do &kdeprint;.</para>
</caption>
</mediaobject>
</screenshot>

</sect2>

<sect2>
<title
>O que o &kdeprint; oferece a todos...</title>

<para
>A interface simples de usar do &kdeprint; para os sub-sistemas de impressão suportados não elimina a fraqueza tradicional de alguns desses sistemas, mas lima algumas arestas. Os diferentes utilizadores poderão utilizar diferentes sistemas de impressão na mesma máquina. Um utilizador tem inclusive a possibilidade de mudar <quote
>na altura</quote
> o sub-sistema a usar na próxima tarefa, a partir da janela de impressão. (Isto é possível se os diferentes sistemas estiverem instalados de modo a que cada um <quote
>não se meta no caminho de outro</quote
>.)</para>

<para
>A maioria dos utilizadores estão acostumados à impressão com o <acronym
>LPD</acronym
>. O <acronym
>LPD</acronym
> oferece só algumas funções de impressão básicas, é muito inflexível e não utiliza as várias opções dos sistemas de impressão mais recentes como o &CUPS;. Embora também funcione remotamente para qualquer parte (como qualquer protocolo baseado no TCP/IP), falta ao <acronym
>LPD</acronym
> bidireccionabilidade, autenticação, controlo de acesso e suporte de cifra.</para>

<para
>O &kdeprint; pode usar o &CUPS; para suportar:</para>

<itemizedlist>
<listitem>
<para
>A pesquisa na <acronym
>LAN</acronym
> pelas impressoras disponíveis,</para>
</listitem>
<listitem>
<para
>Autenticação Básica, com Digests e com Certificados,</para>
</listitem>
<listitem>
<para
>Controlo de Acesso baseado nos endereços <acronym
>IP</acronym
>, nos endereços de rede, máscaras de rede, nos nomes das máquinas e domínios,</para>
</listitem>
<listitem>
<para
>e a cifra TLS de 128 Bits ou a cifra de SSL3 dos dados de impressão, para prevenir intromissões, ou pelo menos complicar tais acções.</para>
</listitem>
</itemizedlist>

<para
>Isto torna o &kdeprint; uma solução muito mais robusta e fiável do que utilizar o venerável <acronym
>LPD</acronym
>.</para>

</sect2>
<sect2>
<title
>Como aceder ao &kdeprint; </title>

<para
>Obtém acesso ao &kdeprint;, ou a partes dele, de quatro formas diferentes:</para>

<itemizedlist>
<listitem
><para
>através das suas aplicações: se chamar a janela de impressão (quer por <menuchoice
><guilabel
>Ficheiro</guilabel
> <guilabel
>Imprimir...</guilabel
></menuchoice
>) quer pelo botão com o ícone da pequena impressora neste; isto abre a janela de impressão.</para
></listitem>

<listitem
><para
>através do comando <command
>kprinter</command
> indicado num <application
>terminal</application
>, numa janela do &konsole; ou na janela de mini-<acronym
>CLI</acronym
> <guilabel
>Executar Comando...</guilabel
>: isto também abre a janela de impressão.</para
></listitem>

<listitem
><para
>a partir do botão do <inlinemediaobject
><imageobject
> <imagedata fileref="kcontrol-icon.png" format="PNG"/></imageobject
> </inlinemediaobject
>, iniciando o &kcontrol;, e indo a <menuchoice
><guilabel
>Sistema</guilabel
><guilabel
>Gestor de Impressão</guilabel
></menuchoice
>. Isto abre a administração do &kdeprint; como parte do &kcontrolcenter; e permite mudar para outras componentes do &kcontrol;</para
></listitem>

<listitem
><para
>a partir da linha de comandos (&konsole; ou mini-<acronym
>CLI</acronym
>) escreva <userinput
> <command
>kcmshell</command
> <option
>printmgr</option
></userinput
>. Isto abre apenas a componente &kdeprint; do &kcontrol; para o utilizador efectuar a sua configuração. </para
></listitem>
</itemizedlist>
<screenshot>
<screeninfo
>A janela do &kprinter; a iniciar na janela de <guilabel
>Executar um Comando...</guilabel
></screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter_called_from_run_command.png"
format="PNG"/></imageobject>
<textobject>
<phrase
>A iniciar a janela do &kprinter; numa janela de <guilabel
>Executar um Comando...</guilabel
>.</phrase
></textobject>
<caption
><para
>A iniciar a janela do &kprinter; numa janela de <guilabel
>Executar um Comando...</guilabel
>.</para
></caption>
</mediaobject>
</screenshot>

<!-- TODO: This one ought to be a screenshot LW. --> <para
>Aqui está um desenho do &kivio; e a janela do &kdeprint; logo que aparece após o seu início... O utilizador poderá sempre adicionar uma nova impressora carregando no pequeno botão de <guiicon
>Assistente</guiicon
> (marcado a vermelho/amarelo neste desenho).</para>
  
<screenshot>
<screeninfo
>A janela do &kprinter; iniciada (rascunho do &kivio;) </screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter-kivio.png"
format="PNG"/></imageobject>
<textobject>
<phrase
>A janela do &kprinter; iniciada (rascunho do &kivio;)</phrase
></textobject>
<caption
><para
>A janela do &kdeprint; iniciou (desenho de rascunho do &kivio;)</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:
-->
