# Zagadnienia techniczne

Celem tego rozdziału jest omówienie zagadnień technicznych programu &kdeprint; w taki sposób, by rozumieli go nie tylko programiści.

&kdeprint; jest nowym, rewolucyjnym narzędziem, dającym łatwy dostęp do usług drukowania, zarówno użytkownikom, jak i deweloperom &kde;.

## Krótkie omówienie programu &kdeprint;

Możesz dostać się do funkcji programu &kdeprint; na różne sposoby: przez Menedżera drukowania w &kcontrol;, przez komendę `kprinter`, lub dzięki oknu, które pojawia się, kiedy chcesz drukować.

### Czym nie jest

&kdeprint; nie zastępuje systemu drukowania, a więc nie zapewnia obsługi kolejki, ani nie dokonuje przetwarzania &PostScript;ów, ani żadnych innych drukowanych danych.

### Czym jest

&kdeprint; jest pośrednią warstwą, między ustawiającym w kolejce i przekazującym dane systemem drukowania (w zależności, jaki jest zainstalowany), a programem, który dokonuje drukowania. &kdeprint; dostarcza wspólnego dla użytkowników i programistów &kde; interfejsu do obsługi różnych systemów drukowania. Jest on łatwy do konfiguracji i dostosowywania do potrzeb użytkownika.

&kdeprint; jest łatwy w obsłudze zarówno dla programistów, jak i niezaawansowanych użytkowników. Deweloperzy mogą - przy minimalnych zmianach - dołączać swoje programy i korzystać z &kdeprint;, zamiast starego systemu &Qt;. Użytkownicy z łatwością mogą wybierać i konfigurować systemy drukowania.

Dla wiadomości nowych użytkowników &kde;: &Qt; to podstawowa biblioteka i graficzny pakiet narzędziowy, używany przez wszystkie programy &kde;; &Qt; jest rozwijany przez norweską firmę TrollTech.

## &kdeprint; - inne sposoby użytkowania dla różnych ludzi

&kdeprint; ma różne oblicza dla różnych ludzi.

### Co użytkownicy i administratorzy mogą zrobić z &kdeprint;

&kdeprint; zezwala użytkownikom i/lub administratorom, w zależności od ich uprawnień na dostęp do systemów drukowania (&CUPS;, LPD, RLPR, LPRng, PDQ itd.) poprzez graficzny interfejs użytkownika dla &kde;. Za pomocą &kdeprint;, mogą oni drukować, zarządzać zadaniami, drukarkami i demonem drukarki, a wszystko to w wygodny sposób.

Doświadczonym użytkownikom spodoba się możliwość zainstalowania w wybranym systemie drukowania, każdego działającego filtra dla drukowanych danych, pomiędzy danymi wyjściowymi, a wejściowymi.

### Co mogą z nim zrobić deweloperzy &kde;...

Jeśli programista &kde; potrzebuje dostępu drukowania dla swojego programu, nie koduje on funkcji drukowania od początku. Przed &kde; 2.2, usługa ta była oferowana przez klasę `QPrinter`, funkcję biblioteczną pakietu narzędziowego &Qt;. Klasa `QPrinter` opierała się na Line Printer Daemon (LPD). Biblioteka &kdeprint; opiera się na nowocześniejszym Wspólnym Systemie Drukowania Uniksa (Common &UNIX; Printing System - &CUPS;), ale jednocześnie jest kompatybilna z LPD i innymi, mniej zaawansowanymi systemami drukowania. Pozostawia również otwarte drzwi dla każdego możliwego usprawnienia.

Aby programista &kde; mógł użyć nowej klasy &kdeprint; w swoich programach, musi on dokonać tylko minimalnych zmian w ich kodzie: każde wywołanie `QPrinter`, powinien tylko zmienić na `KPrinter`. Wystarczy zamiana jednej (!) litery w kilku miejscach i wszystko jest gotowe; ich programy mogą od tej pory korzystać z wszystkich właściwości nowej biblioteki &kdeprint;.

Bardziej ambitni deweloperzy, albo mający specjalne wymagania, mogą zrobić więcej: prócz bogatej możliwości obsługi programu &kdeprint;, mogą oni jeszcze lepiej dostosować okno drukowania swojego programu do własnych potrzeb, przez stworzenie dodatkowej zakładki. Takie dodatkowe rozszerzenie standardowego &kdeprint; będzie znakomicie działać.

Ostatnia ze wspomnianych opcji nie była dotychczas szeroko stosowana w ramach &kde;. Najprawdopodobniej dlatego, że użytkownicy nie byli w pełni świadomi możliwości &kdeprint;. W bliskiej przyszłości możesz spodziewać się większej ilości podobnych usprawnień. Jednym z przykładów niech będzie program &kcron;. Pozwala ona na edycję pliku crontab poprzez &GUI;. Została dołączona właściwość drukowania, która pozwala Tobie (lub root) dokonać wyboru, czy drukowany ma być cały plik crontab (dla wszystkich użytkowników), czy tylko jego zaznaczona część. Możesz zobaczyć rezultat na zrzutach ekranu poniżej.

Przykład możliwości programu &kcron;. Narzędzie &kcron;: mała próbka systemowych zadań wykonywanych okresowo, tak jak to pokazano w graficznym interfejsie dla &kde;. Programiści &kcron; pozwalają ci wybrać, czy drukować całą tabelę zadań, czy tylko zaznaczoną część.

Okno konfiguracji opcji drukowania programu &kcron;: dodatkowa zakładka, zatytułowana Opcje cron pochodzi z programu &kcron;, a nie &kdeprint;; jest to specjalne rozszerzenie, dodane przez deweloperów programu &kcron;, w celu ulepszenia opcji drukowania, nie pochodzące z &kdeprint;, ale wykonywane przez ten program. Programiści innych programów mogą dodawać różnorodne opcje, jeśli jest taka potrzeba.

Dodatek &kcron; do okna &kdeprint;.
Dodatek &kcron; do okna &kdeprint;.

Dodatek &kcron; do okna &kdeprint;.

### Co &kdeprint; oferuje każdemu...

Łatwy w użyciu interfejs programu &kdeprint; dla każdego obsługiwanego systemu drukowania, nie likwiduje oczywiście podstawowych słabych stron niektórych z tych systemów. Ale wygładza niektóre ostre krawędzie.... Różni użytkownicy mogą używać różnych systemów drukowania w tym samym oknie. Użytkownik może nawet przełączać w locie, w oknie drukowania, na inny system drukowania, który ma być zastosowany do następnego zadania. (Jest to możliwe, jeśli zainstalowane są różne systemy w taki sposób, że nie wchodzą sobie w drogę.)

Większość użytkowników &UNIX;a jest przyzwyczajonych do drukowania poprzez LPD. LPD obsługuje tylko podstawowe funkcje drukowania, jest bardzo mało elastyczny i nie wykorzystuje wielu opcji nowocześniejszych systemów drukowania, jak &CUPS;. Chociaż może pracować zdalnie na każdą odległość (jak każdy protokół bazujący na TCP/IP), LPD brakuje dwukierunkowej komunikacji, uwierzytelnienia, kontroli dostępu i obsługi szyfrowania.

&kdeprint; może używać systemu &CUPS; do obsługi:

- odpytywania sieci LAN o dostępne drukarki,

- uwierzytelniania podstawowego, skrótowego i przez certyfikat,

- kontroli dostępu, opierającej sie na adresie IP, adresach sieciowych, masce sieci, nazwie serwera i domeny,

- 128-bitowego TLS lub SSL3 szyfrowania drukowanych danych, aby uniknąć podsłuchiwania, lub aby uczynić je przynajmniej trudniejszym.

To powoduje, że program &kdeprint; jest o wiele bardziej solidnym i niezawodnym rozwiązaniem, niż szacowny LPD.

### Jak dostać się do &kdeprint;

Możesz dostać się do &kdeprint;, lub jego części, na cztery różne sposoby:

- poprzez program: jeśli wywołasz okno drukowania (obojętnie Plik Drukuj...), lub klikniesz na przycisk ikony drukarki, otworzysz okno drukowania.

- przez wpisanie polecenia `kprinter` w oknie terminala lub konsoli, lub w oknie mini-CLI Uruchom...; tak również otworzysz okno drukowania.

- poprzez przycisk , uruchamiający &kcontrol;; przejdź następnie do SystemMenedżer drukowania. Tak uruchomisz administratora programu &kdeprint;, który jest częścią &kcontrolcenter; i również pozwala na przełączanie miedzy różnymi częściami &kcontrol;

- z wiersza poleceń (konsoli lub mini okna poleceń) wpisz ``kcmshell` `printmgr``. To otworzy część &kcontrolcenter-dopelniacz;, należącą do programu &kdeprint;, abyś mógł zmienić ustawienia

Okno &kprinter; uruchamiane z okna Wykonaj polecenie...
Uruchamianie okna &kprinter; z okna Wykonaj polecenie....

Uruchamianie &kprinter; z okna Uruchom....

To jest grafika &kivio; okna programu &kprinter;, które pokazuje się po uruchomieniu... Zawsze możesz dodać nową drukarkę, klikając na ikonę Asystenta (zaznaczoną na grafice kolorem czerwonym i żółtym).

otwarte okno programu &kprinter; (grafika &kivio;)
otwarte okno programu &kprinter; (grafika &kivio;)

otwarte okno programu &kprinter; (grafika &kivio;)