# Технический обзор

Цель этой главы - дать технический обзор &kdeprint;, которым могли бы пользоваться не только программисты.

&kdeprint; - новый, революционный инструмент, обеспечивающий простой доступ к возможностям печати как для пользователей, так и для разработчиков &kde;.

## Краткое описание &kdeprint;

Вы можете получить доступ к функциям &kdeprint; различными способами: через Диспетчер печати Центра управления KDE, через команду `kprinter` или через диалог, который выводится перед печатью документа.

### Чем это не является

&kdeprint; - это не замена собственнно подсистемы печати, поэтому &kdeprint; не обеспечивает использование демона печати и не осуществляет операции над данными, предназначенными для печати, такими как данные &PostScript;.

### Чем это является

&kdeprint; является промежуточным слоем между демоном и установленной подсистемой печати и приложениями, использующими печать. &kdeprint; обеспечивает общий интерфейс разнообразных поддерживаемых подсистем печати для пользователей и разработчиков &kde;. В то же время приложение поддаётся широкой настройке.

&kdeprint; прост в использовании как для разработчиков, так и для конечных пользователей &kde;. Разработчики могут переносить свои приложения, с минимальными изменениями, для использования &kdeprint; вместо старой системы печати &Qt;. Пользователи могут легко выбирать и настраивать подсистему печати.

К сведению новых пользователей &kde;: &Qt; - это основная библиотека и графический набор инструментов, используемый всеми приложениями &kde;. &Qt; был создан норвежской компанией программного обеспечения TrollTech.

## &kdeprint; - для каждого свои методы использования.

&kdeprint; выглядит по-разному для разных людей.

### Что с помощью &kdeprint; могут делать пользователи и администраторы

&kdeprint; предоставляет пользователям и/или администраторам, в зависимости от их прав, доступ к подсистемам печати (&CUPS;, LPD, RLPR, LPRng и т. д. ) через графический интерфейс &kde; (&GUI;). Используя &kdeprint;, они могут распечатывать документы, управлять заданиями принтера и демоном печати, и всё это - удобным способом.

Опытным пользователям понравится возможность подключать любой работающий фильтр для данных, предназначенных на печать, между выходными данными приложения и входными данными подсистемы печати.

### Что с этим могут делать разработчики &kde;...

Если приложению &kde; необходим доступ к принтеру, разработчику не надо программировать функции печати. Версии &kde; 2.2 и более ранние предоставляли этот сервис через класс `QPrinter` библиотеки &Qt;. Класс `QPrinter` основан на демоне печати (LPD). Библиотека &kdeprint; основана на более современной системе Common &UNIX; Printing System (&CUPS;), в то же время она совместима с LPD и другими устаревшими системами печати. Она также оставляет открытыми двери для будущих разработок.

Чтобы использовать новый класс &kdeprint; в приложениях, разработчикам &kde; надо внести минимальные изменения в код программы: следует просто изменить название класса `QPrinter` на `KPrinter`. Стоит изменить один (!) символ в нескольких частях кода, и всё готово: приложение способно использовать все средства библиотеки &kdeprint;.

Более амбициозные или более требовательные разработчики могут сделать большее: несмотря на то, что окно &kdeprint; богато опциями настройки, они могут изменить диалоговое окно печати, добавив к нему дополнительную закладку, где их расширения к стандартному &kdeprint; будут чувствовать себя как дома.

Это последнее свойство в &kde; не использовалось широко, так как разработчики не полностью сознают мощность &kdeprint;. В ближайшем будущем ожидается нечто большее. Один пример я открыл для себя в приложении &kcron;. Оно позволяет вам редактировать задания системы через графический интерфейс. Разработчики реализовали свойство печати, позволяющее вам (или root) выбрать, будут ли выполнены все задания печати из списка (для всех пользователей) или только отмеченные. Вы можете видеть возможности &kdeprint; на следующих снимках.

На этом снимке показан пример окна утилиты &kcron;. &kcron;: пример приложения, запускающего программы по расписанию. Использует GUI - графический интерфейс. Разработчики &kcron; позволяют вам выбрать, печатать ли все документы из таблицы, или же только отмеченные.

Диалоговое окно настройки опций печати &kcron;: дополнительная закладка, озаглавленная Опции Cron, которая относится к &kcron;, а не к &kdeprint;; это специальное расширение, внесённое разработчиками &kcron; для удобства печати,

дополнение &kcron; к диалоговому окну &kdeprint;.
дополнение &kcron; к диалоговому окну &kdeprint;.

дополнение &kcron; к диалоговому окну &kdeprint;.

### Что &kdeprint; предоставляет каждому...

Лёгкий в использовании интерфейс &kdeprint; для всех поддерживаемых подсистем печати, конечно же, не снимает традиционные недостатки некоторых из этих систем. Но он сглаживает некоторые острые углы. Разные пользователи могут использовать разные системы печати в одном окне. Пользователь может переключаться на лету, с помощью диалогового окна печати, между подсистемами печати, используемыми для разных заданий. (Это возможно, если различные установленные подсистемы печати не перекрывают друг другу дорогу.)

Большинство пользователей &UNIX; используют систему печати LPD. LPD обеспечивает только основные функции печати, является очень негибкой системой и не использует многие возможности, предоставляемые более современными системами печати, такими как &CUPS;. В то же время при работе с удалённой системой (например, с использованием протокола, основанного на TCP/IP), LPD не обеспечивает обратную связь, авторизацию, контроль доступа и поддержку шифрования.

&kdeprint; может использовать &CUPS; для поддержки:

- Опроса доступных принтеров, входящих в локальную сеть,

- Использования всех видов авторизации,

- Контроля доступа, основанного на IP-адресах, сетевых адресах, масках сети, именах хоста и доменных именах,

- 128-битном TLS- или SSL3-шифровании данных, предназначенных на печать, чтобы предотвратить нелегальный доступ к ним, или, как минимум, сделать это как можно более трудным.

Всё это делает &kdeprint; намного более устойчивым и надёжным решением, чем использование почтенного LPD.

### Как запустить &kdeprint;

Вы можете запустить &kdeprint;, или его части, различными способами:

- через ваши приложения: вы можете вызвать диалог печати через пункт меню Файл Печать... или нажав кнопку с изображением принтера; при этом выводится диалог печати.

- по вводу команды `kprinter` в терминале или через окно командной строки: это также вызывает диалоговое окно печати.

- нажав кнопку , запускающую &kcontrol;, и затем выбрав модуль Система Диспетчер печати. При этом запускается модуль управления &kdeprint;, который является частью Центра управления. Он предоставляет вам возможность перейти на другие части Центра управления.

- набрав в командной строке (в &konsole; или другом эмуляторе терминала) команду ``kcmshell` `printmgr``. При этом запустится модуль Центра управления, позволяющий вам изменить параметры

Диалоговое окно &kprinter;, запускаемое через окно Выполнить команду...
Запуск диалогового окна &kprinter; через окно Выполнить команду...

Запуск диалогового окна &kprinter; через окно Выполнить команду...

Вот снимок диалогового окна &kprinter;, каким оно появляется после запуска &kivio;... Вы можете добавить новый принтер, нажав на маленькую кнопку Мастер (на этом изображении - красно-жёлтая).

Запущенный диалог &kprinter; (черновое изображение &kivio;)
Запущенный диалог &kprinter; (черновое изображение &kivio;)

Запущенный диалог &kprinter; (черновое изображение &kivio;)