<chapter id="technical-overview">
<title>Teknisk overblik</title>

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

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

<sect1 id="brief-description">
<title>En kort beskrivelse af &tdeprint;</title>

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

<sect2 id="what-tdeprint-is-not">
<title>Hvad det <emphasis>ikke</emphasis> er</title>

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

</sect2>

<sect2 id="what-kde-print-is">
<title>Hvad det <emphasis>er</emphasis></title>
<para>&tdeprint; er et mellemlag mellem køen og databehandlings-udskriftsundersystemet (som installeret), og programmet der prøver at udskrive. &tdeprint; 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.</para>

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

<para>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.</para>

</sect2>

</sect1>

<sect1 id="different-users">
<title>&tdeprint; -- Forskellig brug for forskellige mennesker</title>

<para>&tdeprint; har forskellige ansigter for forskellige folk.</para>

<sect2 id="what-users-can-do">
<title>Hvad brugere og administratorer kan gøre med &tdeprint;</title>

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

<para>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 <quote>almindelig</quote> &tdeprint;. Læs videre.</para>

</sect2>


<sect2 id="what-developers-can-do">
<title>Hvad &kde;-udviklerne kan gøre med det...</title>

<para>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 <classname>QPrinter</classname>-klassen, en biblioteksfunktion fra &Qt;-værktøjssamlingen. <classname>QPrinter</classname>-klassen afhang af den forældede <quote>Linje Printer Dæmon</quote> (<acronym>LPD</acronym>). &tdeprint;-biblioteket baseres fast på det mere moderne "Common &UNIX; Printing System" (&CUPS;), mens den på samme tid bevarer bagud kompatibilitet med <acronym>LPD</acronym> og andre ældre eller mindre udviklede udskrifts-systemer. Den lader også <quote>lader døren være åben</quote> for nye udviklinger der måtte opstå.</para>

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

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


<para>Den sidstnævnte egenskab er ikke blevet brugt særlig meget indenfor &kde; indtil videre, da udviklerne endnu ikke er fuldt klare over &tdeprint;'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 <systemitem class="username">root</systemitem>) vælge om du ønsker at udskrive hele crontab (for alle brugere) eller blot den del der er markeret. Du kan se virkningen på &tdeprint; i følgende skærmbilleder.</para>

<para>Dette billede giver et eksempel fra &kcron;-redskabet. <screenshot>
<screeninfo>&kcron;-redskabet, et lille udvalg af et systems cronjobs som set gennem &kde;'s <acronym>GUI</acronym>&GUI;.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kcron_to_be_printed.png"
format="PNG"/></imageobject>
<textobject>
<phrase>&kcron;-udviklerne lader dig vælge at skrive hele cron tabellen ud eller blot den markerede del af den.</phrase></textobject>
</mediaobject>
</screenshot>
</para>

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


<screenshot>
<screeninfo>&kcron;'s tilføjelse til &tdeprint;-dialogen.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter_with_kcron_developer_special.png"
format="PNG"/></imageobject>
<textobject>
<phrase>&kcron;'s tilføjelse til &tdeprint;-dialogen.</phrase></textobject>
<caption>
<para>&kcron;'s tilføjelse til &tdeprint;-dialogen.</para>
</caption>
</mediaobject>
</screenshot>

</sect2>

<sect2>
<title>Hvad &tdeprint; tilbyder til alle...</title>

<para>&tdeprint;'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 <quote>midt i det hele</quote>, fra udskriftsdialogen, for det næste job. (Dette er muligt hvis forskellige systemer er installerede på en sådanmåde at de ikke <quote>går i vejen for hinanden</quote>.)</para>

<para>De fleste &UNIX;-brugere er vant til <acronym>LPD</acronym> udskrift. <acronym>LPD</acronym> 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), mangler<acronym>LPD</acronym> bi-direktionel kommunikation, godkendelse, adgangskontrol og krypteringsstøtte.</para>

<para>&tdeprint; kan bruge &CUPS; til at understøtte:</para>

<itemizedlist>
<listitem>
<para>Forespørgsel på <acronym>LAN</acronym> for tilgængelige printere,</para>
</listitem>
<listitem>
<para>Basal-, Digest- og Certifikat-godkendelse,</para>
</listitem>
<listitem>
<para>Adgangskontrol baseret på <acronym>IP</acronym>-adresser, netadresser, netmasker, vært- og domænenavne,</para>
</listitem>
<listitem>
<para>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.</para>
</listitem>
</itemizedlist>

<para>Dette gør &tdeprint; en meget mere robust og troværdig løsning end at bruge den ærværdige <acronym>LPD</acronym>.</para>

</sect2>
<sect2>
<title>Hvordan får man adgang til &tdeprint; </title>

<para>Du får adgang til  &tdeprint; eller dele af den på fire forskellige måder:</para>

<itemizedlist>
<listitem><para>Gennem dine programmer: hvis du kalder udskriftsdialogen (enten <menuchoice><guilabel>Fil</guilabel> <guilabel>Udskriv...</guilabel></menuchoice>) eller knappen med den lille printerikon på; dette åbner udskriftsdialogen.</para></listitem>

<listitem><para>gennem den skrevne kommando <command>kprinter</command> i et <application>terminal</application> eller et &konsole;-vindue eller fra <guilabel>Kør kommando...</guilabel> mini-<acronym>CLI</acronym>-vinduet: dette åbner også udskriftsdialogen.</para></listitem>

<listitem><para>fra <inlinemediaobject><imageobject> <imagedata fileref="kcontrol-icon.png" format="PNG"/></imageobject> </inlinemediaobject>-knappen ved at starte &kcontrol;, og så gå til <menuchoice><guilabel>System</guilabel><guilabel>Udskriftshåndtering</guilabel></menuchoice>. Dette åbner for &tdeprint;-administration som en del af &kcontrolcenter; og også tillader dig at skifte til andre dele af &kcontrol;</para></listitem>

<listitem><para>fra en kommandolinje (&konsole; eller mini-<acronym>CLI</acronym>) skrives <userinput> <command>tdecmshell</command> <option>printers</option></userinput>. Dette åbner kun &tdeprint;-delen af &kcontrol; for at ændre din opsætning </para></listitem>
</itemizedlist>
<screenshot>
<screeninfo>&kprinter;-dialogen der vil blive startet fra <guilabel>Kør kommando...</guilabel>-vinduet</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter_called_from_run_command.png"
format="PNG"/></imageobject>
<textobject>
<phrase>Start af &kprinter;-dialogen fra et <guilabel>Kør kommando...</guilabel>-vindue.</phrase></textobject>
<caption><para>Start af &kprinter;-dialogen fra et <guilabel>Kør kommando...</guilabel>-vindue.</para></caption>
</mediaobject>
</screenshot>

<!-- TODO: This one ought to be a screenshot LW. --> <para>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 <guiicon>Guide</guiicon>-knap (markeret rød/gul i denne tegning).</para>
  
<screenshot>
<screeninfo>&kprinter;-dialog startet (&kivio; kladdetegning) </screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter-kivio.png"
format="PNG"/></imageobject>
<textobject>
<phrase>&kprinter;-dialog startet (&kivio; kladdetegning)</phrase></textobject>
<caption><para>&kprinter;-dialog startet (&kivio; kladdetegning)</para></caption>
</mediaobject>
</screenshot>

</sect2>

</sect1>

</chapter>
