# Teknisk översikt

Det här kapitlets målsättning är att ge en teknisk översikt över &kdeprint; som är begriplig för andra än programmerare.

&kdeprint; är ett nytt revolutionerande verktyg för att lätt komma åt utskriftsservice både för &kde;-användare och &kde;-utvecklare.

## En kortfattad beskrivning av &kdeprint;

Du kan komma åt funktionerna i &kdeprint; på olika sätt: genom skrivarhanteraren i Inställningscentralen, genom kommandot `kprinter` eller genom dialogrutan som dyker upp när du vill skriva ut.

### Vad det inte är

&kdeprint; är inte en ersättning för utskriftssystemet själv. &kdeprint; tillhandahåller därför inte köhantering, och det gör inte den grundläggande hanteringen av &PostScript; eller annan utskriftsdata.

### Vad det är

&kdeprint; är ett mellanlager mellan köhanteringen och datahanteringen i utskriftssystemet (som är installerat), och programmet som försöker skriva ut. &kdeprint; tillhandahåller ett gemensamt gränssnitt för &kde;-utvecklare och &kde;-användare, till de olika utskriftssystem som stöds. Samtidigt är det möjligt att ändra, och i hög grad anpassningsbart.

&kdeprint; är lätt att använda för både &kde;-utvecklare och slutanvändare. Utvecklare kan skriva om sina program att använda &kdeprint; istället för det gamla utskriftssystemet i &Qt;, med minimala ändringar. Användare kan lätt välja och anpassa sitt utskriftssystem.

Som referens för nya &kde;-användare: &Qt; är det grundläggande bibliotek och grafiska verktygslåda som används av alla &kde;-program. &Qt; utvecklas av Trolltech, ett norskt programvaruföretag.

## &kdeprint;, olika användning för olika personer

&kdeprint; visar olika ansikten för olika personer.

### Vad användare och administratörer kan göra med &kdeprint;

&kdeprint; låter användare och/eller administratörer, beroende på deras behörigheter, komma åt utskriftssystem (&CUPS;, LPD, RLPR, LPRng, PDQ etc.) genom ett grafiskt användargränssnitt i &kde;. Med &kdeprint;, kan de skriva ut, hantera jobb, skrivare och utskriftsdemonen, allt på ett bekvämt sätt.

Erfarna användare kommer att tycka om möjligheten att stoppa in vilket fungerande filter som helst mellan utdata från programmet och indata till det valda utskriftssystemet. Några exempel på det här levereras redan med den vanliga enkla &kdeprint;. Läs vidare!

### Vad &kde;-utvecklare kan göra med det...

Om en &kde;-utvecklare behöver tillgång till utskrift för sitt program, kodar han inte utskriftsfunktionerna från början. Innan &kde; 2.2 tillhandahölls den här servicen av klassen `QPrinter`. en biblioteksfunktion i &Qt;-verktygslådan. Klassen `QPrinter` använde sig av den urmodiga radskrivardemonen (LPD). &kdeprint;-biblioteket är i grunden baserat på det modernare &UNIX;-utskriftssystemet (&CUPS;), medan det samtidigt behåller bakåtkompatibilitet med LPD och andra gamla eller mindre sofistikerade utskriftssystem. Dessutom lämnar det dörren öppen för nyutveckling som kan ske.

För att &kde;-utvecklare ska använda den nya &kdeprint;-klassen i sina program, behöver de bara göra minimala ändringar i koden: för varje anrop till `QPrinter`, behöver de bara ändra till `KPrinter`. Ett byte av en (!) bokstav på några få ställen, och de är automatiskt klara. Deras program kan sedan använda alla funktioner i det nya &kdeprint;-biblioteket.

Mer ambitiösa utvecklare, eller de med speciella behov kan göra mer: trots &kdeprint;s funktionsrika grundstomme, kan de fortfarande ändra utskriftsdialogrutan för sitt program genom att skapa ytterligare en flik, där deras tillägg till standardversionen av &kdeprint; passar in.

Den sistnämnda funktionen används hittills inte särskilt ofta inne i &kde;, eftersom utvecklare inte ännu helt känner till hur kraftfullt &kdeprint; är. Förvänta dig mer av detta i den närmsta framtiden. Ett exempel som jag upptäckte är programmet &kcron;. Det låter dig redigera schemaläggning av systemjobb via ett grafiskt gränssnitt. Utvecklarna har implementerat en utskriftsfunktion som låter dig (eller `root`) välja om du vill skriva ut hela schemat (för alla användare) eller bara den markerade delen. Du kan se effekten för &kdeprint; på följande skärmbilder.

Den här bilden visar ett exempel från verktyget &kcron; &kcron;-verktyget: en litet exempel på systemets schemalagda jobb som visas genom &kde;:s grafiska gränssnitt. Utvecklarna av &kcron;-låter dig välja om du ska skriva ut hela schemat eller bara en markerad del av det.

Dialogrutan för att ställa in &kcron;s utskriftsalternativ: den ytterligare fliken som heter Cron-alternativ kommer inifrån &kcron;, inte &kdeprint;. Det är en speciell utökning som har lagts till av utvecklarna av &kcron; för utskriftsändamål, som inte härrör från, men körs av &kdeprint;. Utvecklare av andra program har möjlighet att implementera sina egna godsaker, om de tycker att det behövs.

&kcron;s tillägg till &kdeprint;s dialogruta. &kcron;s tillägg till &kdeprint;s dialogruta.

&kcron;s tillägg till &kdeprint;s dialogruta.

### Vad &kdeprint; erbjuder åt alla...

&kdeprint;s lättanvända gränssnitt för alla utskriftssystem som stöds eliminerar förstås inte traditionella grundläggande svagheter för en del av systemen. Men det jämnar ut en del skarpa kanter. Olika användare kan använda olika utskriftssystem på samma dator. En användare har till och med möjlighet att byta utskriftssystemet som ska användas för nästa jobb i farten, från utskriftsdialogrutan (Det här är möjligt om olika system är installerade på ett sådant sätt att de inte kommer i vägen för varandra.)

De flesta &UNIX;-användare är vana vid LPD-utskrift. LPD tillhandahåller bara grundläggande utskriftsfunktioner, saknar till stor del flexibilitet och använder inte de många alternativ som finns i modernare utskriftssystem som &CUPS;. Även om det också fungerar för fjärrskrivare med vilka avstånd som helst (som alla TCP/IP-baserade protokoll), så saknar LPD tvåvägskommunikation, behörighetskontroll, åtkomstkontroll och krypteringsstöd.

&kdeprint; kan använda &CUPS; för att stödja:

- förfrågningar i det lokala nätverket efter tillgängliga skrivare,

- grundläggande-, DIGEST- och certifikatbehörighetskontroll,

- åtkomstkontroll baserat på IP-adresser, nätadresser, nätmaskar, värddatorer och domännamn,

- och 128-bitars TSL eller SSL3 kryptering av utskriftsdata, för att förhindra avlyssning, eller åtminstone göra det mycket svårare.

Det här gör &kdeprint; till en mycket robustare och mer tillförlitlig lösning än att använda det vördnadsbjudande LPD.

### Hur man kommer åt &kdeprint;

Du kan komma åt &kdeprint; eller delar av det på fyra olika sätt:

- genom ditt program. Om du anropar utskriftsdialogrutan (antingen via Arkiv Skriv ut... eller knappen med den lilla skrivarikonen), öppnas utskriftsdialogrutan.

- genom att skriva in kommandot `kprinter` i en terminal eller ett terminalfönster, eller från fönstret Kör kommando..., minikommandoraden. Det här öppnar också utskriftsdialogrutan.

- från knappen , för att starta Inställningscentralen. Välj sedan System Skrivarhanterare. Det här visar administrationsdelen av &kdeprint;, som är en del av Inställningscentralen, och låter dig också byta till andra delar av Inställningscentralen.

- skriv ``kcmshell` `printmgr`` från en kommandorad (terminal eller minikommandorad). Det här öppnar bara &kdeprint;-delen av inställningscentralen för att ändra dina inställningar.

&kprinter;-dialogrutan som ska startas från fönstret Kör kommando... Starta &kprinter;-dialogrutan från fönstret Kör kommando....

Starta &kprinter;-dialogrutan från fönstret Kör kommando....

Här är en &kivio;-bild av &kprinter;-dialogrutan som den ser ut efter den har startats... Du kan alltid lägga till en ny skrivare genom att klicka på den lilla guide-knappen (markerad röd/gul i den här bilden).

&kprinter;s dialogruta efter start (&kivio;-utkast) &kprinter;s dialogruta efter start (&kivio;-utkast)

&kprinter;s dialogruta efter start (&kivio;-utkast)