# Visão Técnica

Este capítulo tem o objetivo de fornecer uma visão técnica do &kdeprint; que não-programadores possam compreender.

O &kdeprint; é uma nova e revolucionária ferramenta para fornecer um rápido acesso aos serviços de impressão tanto para usuários do &kde; como para desenvolvedores do &kde;.

## Uma Rápida Descrição do &kdeprint;

Você pode acessar as funções do &kdeprint; de diferentes maneiras: através do Gerenciador de Impressão no &kcontrol;, através do comando `kprinter` ou através do diálogo que aparece quando você deseja imprimir.

### O que ele não é

O &kdeprint; não é um substituto para o sub-sistema de impressão propriamente dito. O &kdeprint; conseqüentemente não fornece um serviço de fila de impressão, e ele não faz o processamento básico de &PostScript; e outros dados de impressão.

### O que ele é

O &kdeprint; é uma camada intermediária entre a fila de impressão e o processamento de dados do sub-sistema de impressão (como instalado), e o aplicativo que busca imprimir um documento. O &kdeprint; fornece uma interface comum para desenvolvedores do &kde; e usuários do &kde;, aos vários sub-sistemas de impressão suportados. Ao mesmo tempo, ele é personalizável, e altamente configurável.

O &kdeprint; é fácil de usar tanto por desenvolvedores do &kde; como usuários finais. Desenvolvedores podem portar seus aplicativos, com mudanças mínimas, para usar o &kdeprint; ao invés do antigo sistema de impressão do &Qt;. Usuários podem facilmente escolher e configurar seu sub-sistema de impressão.

Como referência para usuários novos do &kde;: o &Qt; é a biblioteca básica e kit de ferramentas gráficas, que é usado por todos aplicativos do &kde;; o &Qt; é desenvolvido pela TrollTech, uma companhia de software Norueguesa.

## &kdeprint; -- Diferentes Usos para Diferentes Pessoas

O &kdeprint; possui facetas diferentes para diferentes pessoas.

### O que usuários e administradores podem fazer com o &kdeprint;

O &kdeprint; permite aos usuários e/ou administradores, dependendo de suas permissões, acessar os sub-sistemas de impressão(&CUPS;, LPD, RLPR, LPRng, PDQ &etc;) através de uma interface gráfica com o usuário do &kde; (&GUI;). Usando o &kdeprint;, eles podem imprimir, administrar trabalhos, impressoras e o serviço de impressão, tudo de uma maneira confortável.

Usuários experientes gostarão da capacidade de adicionar qualquer filtro de trabalho para dados a serem impressos entre a saída de seus aplicativos e a entrada no sub-sistema de impressão escolhido. Alguns exemplos para isto vieram com o plain vanilla do &kdeprint;. Leia-o.

### O que desenvolvedores do &kde; podem fazer com ele...

Se um desenvolvedor do &kde; precisa de acesso à impressão para seu aplicativos, ele não precisa codificar as funções de impressão a partir do zero. Antes do &kde; 2.2, este serviço era fornecido pela classe `QPrinter`, uma biblioteca de funções do Kit de Ferramentas &Qt;. A classe `QPrinter` funcionava sob o antigo Line Printer Daemon (LPD). A biblioteca do &kdeprint; se baseia firmemente no mais moderno Sistema de Impressão Comum para &UNIX; (&CUPS;), enquanto ao mesmo tempo mantém compatibilidade regressa com o LPD e outros sistemas de impressão legados ou menos elaborados. Ele também deixa a porta aberta para qualquer novo desenvolvimento que venha ocorrer.

Para desenvolvedores do &kde; usarem a nova classe &kdeprint; em seus aplicativos, eles precisam apenas de mudanças mínimas no seu código: para cada chamada do `QPrinter`, eles apenas precisam mudá-la para `KPrinter`. Substituir uma (!) letra em poucos pontos, e automaticamente eles permitiram aos seus aplicativos usarem todos os recursos da nova biblioteca &kdeprint;.

Desenvolvedores mais ambiciosos, ou com necessidades especiais, podem fazer mais: a despeito do ambiente de trabalho rico de recursos do &kdeprint;, eles ainda são capazes de personalizar o diálogo de impressão do seu aplicativo criando Abas adicionais, onde suas extensões ao padrão do &kdeprint; ficarão acessíveis.

Este recurso mencionado por último não vem sendo usado largamente no &kde;, uma vez que os desenvolvedores ainda não estão totalmente cientes do poder do &kdeprint;. Espera-se um maior uso disto num futuro próximo. Um exemplo que eu descobri é o aplicativo &kcron;. Ele permite-lhe editar o crontab através de uma &GUI;. Os desenvolvedores implementaram um recurso de impressão que permite-lhe (ou o root) escolher se deseja imprimir todo o crontab (para todos os usuários) ou apenas a parte que estiver marcada. Você pode ver os efeitos no &kdeprint; nas seguintes capturas de tela.

Esta imagem mostra um exemplo do utilitário &kcron;. O utilitário &kcron; é um pequeno exemplo de um trabalho de cron do sistema como mostrado através do &kde; GUI&GUI;. Os desenvolvedores do &kcron; permitiram-lhe escolher entre imprimir toda a tabela do cron ou apenas as partes marcadas dela.

O diálogo para configurar as opções de impressão do &kcron;: a aba adicional intitulada Opções do Cron é do próprio &kcron;, e não do &kdeprint;; ela é uma extensão especial adicionada pelos desenvolvedores do &kcron; para fins de impressão, não originada de, mas executada pelo &kdeprint;. Desenvolvedores de outros aplicativos estão livres para implementar suas próprias melhorias, se eles sentirem necessidades delas.

Adição do &kcron; ao diálogo do &kdeprint;.
Adição do &kcron; ao diálogo do &kdeprint;.

Adição do &kcron; ao diálogo do &kdeprint;.

### O que o &kdeprint; oferece à todos...

A interface fácil de usar do &kdeprint; para todos os sub-sistemas de impressão suportados é claro que não elimina as fraquezas tradicionais básicas de alguns destes sistemas. Mas ele repara algumas arestas. Usuários diferentes podem usar sistemas de impressão diferentes num mesmo computador. Um usuário é livre para mudar em tempo real, a partir do diálogo de impressão, o sub-sistema de impressão a ser usado no próximo trabalho. (Isto é possível se diferentes sistemas estão instalados de modo que eles não sejam acessados de outras maneiras.)

A maioria dos usuários &UNIX; estão usando o LPD para impressão. O LPD fornece somente funções básicas de impressão, é muito inflexível e não utiliza muitas das opções da maioria dos sistemas modernos de impressão como o &CUPS;. Apesar de também trabalhar remotamente em qualquer distância (como qualquer protocolo baseado no TCP/IP), ao LPD falta comunicação bi-direcional, autenticação, controle de acesso e suporte à criptografia.

O &kdeprint; pode usar o &CUPS; para suportar:

- Consulta à LAN por impressoras disponíveis,

- Autenticação Básica, Sumária e Certificada,

- Controle de acesso baseado em endereços IP, endereços de rede, máscaras de rede, nomes de máquina e domínio,

- e criptografia de dados de 128-Bits TLS ou SSL3, para evitar interceptação, ou pelo menos torná-la muito mais difícil.

Isto torna o &kdeprint; uma solução muito mais robusta e confiável do que usando o venerável LPD.

### Como acessar o &kdeprint;

Você obtém acesso ao &kdeprint;, ou partes dele, de quatro diferentes modos:

- através de seus aplicativos: se você chamar o diálogo de impressão (tanto com Arquivo Imprimir... como com o botão com um pequeno ícone de impressora sobre ele); isto abre o diálogo de impressão.

- através da digitação do comando `kprinter` num terminal ou numa janela do &konsole; ou a partir da janela mini-CLI Executar Comando...: isto também abrirá o diálogo de impressão.

- a partir do botão , iniciando o &kcontrol;, e então indo para Sistema Gerenciador de Impressão. Isto abre o administrador do &kdeprint; que é parte do &kcontrolcenter; e também permite-lhe alternar para outras partes do &kcontrol;

- a partir da linha de comando (&konsole; ou mini-CLI), digite ``kcmshell` `printers``. Isto abre apenas a componente &kdeprint; do &kcontrol;, de modo que o usuário efetue a sua configuração.

O diálogo do &kprinter; iniciado a partir da janela do Executar Comando...
Iniciando o diálogo do &kprinter; iniciado a partir da janela do Executar Comando....

Iniciando o diálogo do &kprinter; iniciado a partir da janela do Executar Comando....

Aqui está um desenho do &kivio; do diálogo do &kprinter; como ele aparece após ser iniciado... Você sempre pode adicionar uma nova impressora clicando no pequeno botão Assistente (marcada em vermelho/amarelo neste desenho).

O diálogo &kprinter; iniciado (desenho do &kivio;)
O diálogo &kprinter; iniciado (desenho do &kivio;)

O diálogo &kprinter; iniciado (desenho do &kivio;)