# Introdução Técnica

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

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;.

## Uma Breve Descrição do &kdeprint;

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 `kprinter` ou através da janela que aparece quando queres imprimir.

### O que não é

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

### O que é

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.

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 sistema de impressão antigo do &Qt;. Os utilizadores podem escolher e configurar facilmente o sub-sistema de impressão deles.

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.

## &kdeprint; -- Utilização Diferente do &kdeprint; para Diferentes Pessoas

O &kdeprint; tem diferentes vistas para diferentes pessoas.

### O que os utilizadores e os administradores podem fazer com o &kdeprint;

O &kdeprint; permite aos utilizadores e/ou administradores, dependendo dos seus direitos, acederem aos sub-sistemas de impressão (o &CUPS;, o LPD, o RLPR, o LPRng, o PDQ &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.

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; básico. O utilizador poderá confirmá-lo.

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

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 `QPrinter`, uma função da biblioteca &Qt;. A classe `QPrinter` baseava-se no desactualizado Line Printer Daemon(LPD). A biblioteca do &kdeprint; baseia-se firmemente no sistema mais moderno Common &UNIX; Printing System (&CUPS;), mantendo à mesma a compatibilidade com o LPD e outros sistemas legados ou menos elaborados, e também deixando a porta aberta para qualquer novo desenvolvimento que possa ocorrer.

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 `QPrinter`, só precisam de a alterar para `KPrinter`. 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;.

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 secção, onde poderão ser colocadas as suas extensões ao &kdeprint; normal.

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 root) 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.

Esta imagem apresenta uma amostra do utilitário &kcron;. O utilitário &kcron;: uma pequena amostra das tarefas do 'cron' de um sistema mostradas na interface do &kde;. Os programadores do &kcron; permitem-te imprimir toda a tabela do cron ou apenas a parte seleccionada.

A janela para configurar as opções de impressão do &kcron;: a secção adicional Opções do Cron 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.

A adição do &kcron; à janela do &kdeprint;.
A adição do &kcron; à janela do &kdeprint;.

A adição do &kcron; à janela do &kdeprint;.

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

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 na altura 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 não se meta no caminho de outro.)

A maioria dos utilizadores estão acostumados à impressão com o LPD. O LPD 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 LPD bidireccionabilidade, autenticação, controlo de acesso e suporte de cifra.

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

- A pesquisa na LAN pelas impressoras disponíveis,

- Autenticação Básica, com Digests e com Certificados,

- Controlo de Acesso baseado nos endereços IP, nos endereços de rede, máscaras de rede, nos nomes das máquinas e domínios,

- 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.

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

### Como aceder ao &kdeprint;

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

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

- através do comando `kprinter` indicado num terminal, numa janela do &konsole; ou na janela de mini-CLI Executar Comando...: isto também abre a janela de impressão.

- a partir do botão do , iniciando o &kcontrol;, e indo a Sistema Gestor de Impressão. Isto abre a administração do &kdeprint; como parte do &kcontrolcenter; e permite mudar para outras componentes do &kcontrol;

- a partir da linha de comandos (&konsole; ou mini-CLI) escreva ``kcmshell` `printmgr``. Isto abre apenas a componente &kdeprint; do &kcontrol; para o utilizador efectuar a sua configuração.

A janela do &kprinter; a iniciar na janela de Executar um Comando...
A iniciar a janela do &kprinter; numa janela de Executar um Comando....

A iniciar a janela do &kprinter; numa janela de Executar um Comando....

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 Assistente (marcado a vermelho/amarelo neste desenho).

A janela do &kprinter; iniciada (rascunho do &kivio;)
A janela do &kprinter; iniciada (rascunho do &kivio;)

A janela do &kdeprint; iniciou (desenho de rascunho do &kivio;)