# Teknisk overblik

Formålet med dette kapitel er at give et teknisk overblik af &kdeprint; som ikke-programmører kan forstå.

&kdeprint; er et nyt og revolutionerende værktøj til at give adgang til udskriftsservicer både for &kde;-brugere og &kde;-udviklere.

## En kort beskrivelse af &kdeprint;

Du kan få adgang til &kdeprint;'s funktioner på forskellige måder: gennem udskriftshåndteringen i &kcontrol;, gennem `kprinter`-kommandoen eller gennem du dialoger der popper op hvis du ønsker at udskrive.

### Hvad det ikke er

&kdeprint; er ikke en erstatning for selve udskrifts-undersystemet. &kdeprint; sørger altså ikke for printkøen og den udfører ikke den basale behandling af &PostScript; eller anden udskriftsdata

### Hvad det er

&kdeprint; er et mellemlag mellem køen og databehandlings-udskriftsundersystemet (som installeret), og programmet der prøver at udskrive. &kdeprint; giver en fælles grænseflade, for &kde;-udviklere og &kde;-brugere til forskellige understøttede udskrifts-undersystemer. På samme tid er den højst indstillelig både som standard og i brug.

&kdeprint; er nem at bruge både for &kde;-udviklere og slutbrugere. Udviklerne kan overføre deres programmer med minimal ændringer til at bruge &kdeprint; i stedet for det gamle &Qt; udskriftssystem. Brugeren kan nemt vælge og indstille deres udskrifts-undersystem.

Som en reference til nye &kde;-brugere: &Qt; er det basale bibliotek og grafiske værktøj, som bruges af alle &kde;-programmer; &Qt; er udvikler af TrollTech, et norsk software-firma.

## &kdeprint; -- Forskellig brug for forskellige mennesker

&kdeprint; har forskellige ansigter for forskellige folk.

### Hvad brugere og administratorer kan gøre med &kdeprint;

&kdeprint; tillader brugere og/eller administratorer, afhængig af deres rettigheder, at få adgang til udskrifts-undersystemer (&CUPS;, LPD, RLPR, LPRng, PDQ &etc;) gennem en grafisk &kde;-grænseflade (&GUI;). Ved brug af &kdeprint; kan de udskrive, administrere job, printere og printerdæmonen, alt på en behagelig måde.

Erfarne brugere vil kunne lide muligheden for at stikke et fungerende filter for udskriftsdata mellem uddata fra deres program og inddata til det valgte udskrifts-undersystem. Nogle eksempler på dette leveres allerede med almindelig &kdeprint;. Læs videre.

### Hvad &kde;-udviklerne kan gøre med det...

Hvis en &kde;-udvikler har brug for adgang til udskrift fra sit program, behøver han/hun ikke indkode udskriftsfunktionerne fra bunden af. Før &kde; 2.2 blev denne service givet af `QPrinter`-klassen, en biblioteksfunktion fra &Qt;-værktøjssamlingen. `QPrinter`-klassen afhang af den forældede Linje Printer Dæmon (LPD). &kdeprint;-biblioteket baseres fast på det mere moderne "Common &UNIX; Printing System" (&CUPS;), mens den på samme tid bevarer bagud kompatibilitet med LPD og andre ældre eller mindre udviklede udskrifts-systemer. Den lader også lader døren være åben for nye udviklinger der måtte opstå.

For at &kde;-udviklerne skal kunne bruge den nye &kdeprint;-klasse i deres programmer, kræves der blot minimale ændringer i deres kode: for hvert kald af `QPrinter`, skal de blot ændre dette til `KPrinter`. Erstatning af ét (!) bogstav nogle få steder, og så er de automatisk færdige; deres program kan nu bruge alle egenskaber i det nye &kdeprint; bibliotek.

Mere ambitiøse udviklere, eller de der har specielle krav kan gøre mere: på trods af &kdeprint;'s egenskabsrige rammer, kan de stadigvæk brugerindrette udskriftsdialogen for deres program ved at lave et ekstra Faneblad, hvor deres udvidelse til standard-&kdeprint; vil kunne føle sig rigtig hjemme.

Den sidstnævnte egenskab er ikke blevet brugt særlig meget indenfor &kde; indtil videre, da udviklerne endnu ikke er fuldt klare over &kdeprint;'s styrke. Forvent mere af dette i den nære fremtid. Et eksempel jeg opdagede er &kcron;-programmet. Det lader dig redigere crontab gennem et &GUI;. Udviklerne har implementeret en udskriftsegenskab der lader dig (eller root) vælge om du ønsker at udskrive hele crontab (for alle brugere) eller blot den del der er markeret. Du kan se virkningen på &kdeprint; i følgende skærmbilleder.

Dette billede giver et eksempel fra &kcron;-redskabet. &kcron;-redskabet, et lille udvalg af et systems cronjobs som set gennem &kde;'s GUI&GUI;. &kcron;-udviklerne lader dig vælge at skrive hele cron tabellen ud eller blot den markerede del af den.

Dialogen til at indstille &kcron;'s udskriftstilvalg: det ekstra faneblad der hedder Cron-indstillinger er indefra &kcron;, ikke &kdeprint;; det er en speciel udvidelse tilføjet af &kcron;-udviklerne til udskriftsformål, det kommer ikke fra, men udføres af &kdeprint;. Udviklere af andre programmer kan frit implementere deres egne ting, hvis de føler der er behov for det.

&kcron;'s tilføjelse til &kdeprint;-dialogen.
&kcron;'s tilføjelse til &kdeprint;-dialogen.

&kcron;'s tilføjelse til &kdeprint;-dialogen.

### Hvad &kdeprint; tilbyder til alle...

&kdeprint;'s nem-at bruge grænseflade for alle understøttede udskrifts-undersystemer eliminerer naturligvis ikke de basale traditionelle svagheder i nogle af disse systemer. Men det glatter de rå kanter ud. Forskellige brugere kan bruge forskellige udskriftssystemer på den samme felt. En bruger står frit for endog at skifte udskrifts-undersystemet midt i det hele, fra udskriftsdialogen, for det næste job. (Dette er muligt hvis forskellige systemer er installerede på en sådanmåde at de ikke går i vejen for hinanden.)

De fleste &UNIX;-brugere er vant til LPD udskrift. LPD giver kun meget basale udskriftsfunktioner, er meget ufleksibel og udnytter ikke de mange muligheder i mere moderne udskriftssystemer såsom &CUPS;. Selvom det også virker eksternt over en vilkårlig afstand (som enhver TCP/IP-baseret protokol), manglerLPD bi-direktionel kommunikation, godkendelse, adgangskontrol og krypteringsstøtte.

&kdeprint; kan bruge &CUPS; til at understøtte:

- Forespørgsel på LAN for tilgængelige printere,

- Basal-, Digest- og Certifikat-godkendelse,

- Adgangskontrol baseret på IP-adresser, netadresser, netmasker, vært- og domænenavne,

- og 128-Bit TLS eller SSL3 kryptering af udskriftsdata, for at forhindre hemmelige lyttere eller i det mindste at gøre det meget sværere.

Dette gør &kdeprint; en meget mere robust og troværdig løsning end at bruge den ærværdige LPD.

### Hvordan får man adgang til &kdeprint;

Du får adgang til &kdeprint; eller dele af den på fire forskellige måder:

- Gennem dine programmer: hvis du kalder udskriftsdialogen (enten Fil Udskriv...) eller knappen med den lille printerikon på; dette åbner udskriftsdialogen.

- gennem den skrevne kommando `kprinter` i et terminal eller et &konsole;-vindue eller fra Kør kommando... mini-CLI-vinduet: dette åbner også udskriftsdialogen.

- fra -knappen ved at starte &kcontrol;, og så gå til SystemUdskriftshåndtering. Dette åbner for &kdeprint;-administration som en del af &kcontrolcenter; og også tillader dig at skifte til andre dele af &kcontrol;

- fra en kommandolinje (&konsole; eller mini-CLI) skrives ``kcmshell` `printers``. Dette åbner kun &kdeprint;-delen af &kcontrol; for at ændre din opsætning

&kprinter;-dialogen der vil blive startet fra Kør kommando...-vinduet
Start af &kprinter;-dialogen fra et Kør kommando...-vindue.

Start af &kprinter;-dialogen fra et Kør kommando...-vindue.

Her er en &kivio;-tegning af &kprinter;-dialogen som den kommer frem efter den er startet... Du kan altid tilføje en ny printer ved at klikke på den lille Guide-knap (markeret rød/gul i denne tegning).

&kprinter;-dialog startet (&kivio; kladdetegning)
&kprinter;-dialog startet (&kivio; kladdetegning)

&kprinter;-dialog startet (&kivio; kladdetegning)