# Introdução Técnica

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

O &tdeprint; é 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 &tdeprint;

O utilizador poderá aceder às funções do &tdeprint; de diferentes formas: através do Gestor de Impressão no &kcontrol;, através do comando `kprinter` ou através da janela que aparece quando deseja imprimir.

### O que não é

O &tdeprint; não é um substituto do sistema de impressão em si. Como tal, o &tdeprint; 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 &tdeprint; é 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 &tdeprint; 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 &tdeprint; é fácil de usar pelos 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 &tdeprint; 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.

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

O &tdeprint; tem diferentes vistas para diferentes pessoas.

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

O &tdeprint; 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 &tdeprint;, poderão 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 &tdeprint; básico. O utilizador podê-lo-á confirmar.

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

Se um programador do &kde; necessitar de acesso às impressoras para a sua aplicação, não irá codificar 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 &tdeprint; baseia-se firmemente no sistema mais moderno que é o Common &UNIX; Printing System (&CUPS;), mantendo à mesma a compatibilidade com o LPD e com os outros sistemas legados ou menos elaborados, assim como também deixam a porta aberta para qualquer novo desenvolvimento que possa ocorrer.

Para os programadores do &kde; usarem a nova classe do &tdeprint; nas suas aplicações, é necessário 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 funcionalidades da biblioteca &tdeprint;.

Os programadores mais ambiciosos, ou aqueles com necessidades especiais, poderão fazer mais: é-lhes possível personalizar à mesma a janela de impressão da sua aplicação, permitindo a adição de uma nova página, onde poderão ser colocadas as suas extensões ao &tdeprint; 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 &tdeprint;. Espere mais algumas destas coisas num futuro próximo. Um exemplo que foi descoberto é a aplicação &kcron;. Esta permite ao utilizador editar o 'crontab' através de uma interface gráfica. Os programadores implementaram uma funcionalidade de impressão e que, neste caso, 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 &tdeprint; 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-lhe optar por 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 &tdeprint;; é uma extensão especial adicionada pelos programadores do &kcron; para fins de impressão que, não sendo originárias do &tdeprint;, são executadas por este. Os programadores das outras aplicações terão a liberdade para adicionar as suas próprias funcionalidades, se sentirem a necessidade.

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

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

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

A interface simples de usar do &tdeprint; 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 &tdeprint; 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, nas máscaras de rede, nos nomes das máquinas e nos domínios,

- e a cifra, com o TLS de 128 Bits ou com o SSL3, dos dados de impressão, para prevenir intromissões, ou pelo menos complicar tais acções.

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

### Como aceder ao &tdeprint;

Poderá obter acesso ao &tdeprint;, 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 irá abrir a janela de impressão.

- através do comando `kprinter` indicado num terminal, numa janela do &konsole; ou na janela de mini-CLI Executar um 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 &tdeprint; como parte do &kcontrolcenter;, permitindo-lhe mudar para outras componentes do &kcontrol;

- a partir da linha de comandos (&konsole; ou mini-CLI), escreva ``tdecmshell` `printers``. Isto abre apenas a componente &tdeprint; do &kcontrol;, de modo que o utilizador efectue a sua configuração.

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

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

Aqui está um desenho do &kivio; e a janela do &tdeprint;, logo que aparece após o seu início... O utilizador poderá sempre adicionar uma nova impressora, se carregar no pequeno botão do 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 &tdeprint; iniciou (rascunho do &kivio;)