<chapter id="technical-overview"> <title >Teknisk overblik</title> <para >Formålet med dette kapitel er at give et teknisk overblik af &kdeprint; som ikke-programmører kan forstå.</para> <para >&kdeprint; 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 &kdeprint;</title> <para >Du kan få adgang til &kdeprint;'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-kdeprint-is-not"> <title >Hvad det <emphasis >ikke</emphasis > er</title> <para >&kdeprint; er <emphasis >ikke</emphasis > en erstatning for selve udskrifts-undersystemet. &kdeprint; 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 >&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.</para> <para >&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; 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 >&kdeprint; -- Forskellig brug for forskellige mennesker</title> <para >&kdeprint; har forskellige ansigter for forskellige folk.</para> <sect2 id="what-users-can-do"> <title >Hvad brugere og administratorer kan gøre med &kdeprint;</title> <para >&kdeprint; 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 &kdeprint; 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 > &kdeprint;. 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 >). &kdeprint;-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 &kdeprint;-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 &kdeprint; bibliotek.</para> <para >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 <quote >Faneblad</quote >, hvor deres udvidelse til standard-&kdeprint; 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 &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 <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å &kdeprint; 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 &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.</para> <screenshot> <screeninfo >&kcron;'s tilføjelse til &kdeprint;-dialogen.</screeninfo> <mediaobject> <imageobject> <imagedata fileref="kprinter_with_kcron_developer_special.png" format="PNG"/></imageobject> <textobject> <phrase >&kcron;'s tilføjelse til &kdeprint;-dialogen.</phrase ></textobject> <caption> <para >&kcron;'s tilføjelse til &kdeprint;-dialogen.</para> </caption> </mediaobject> </screenshot> </sect2> <sect2> <title >Hvad &kdeprint; tilbyder til alle...</title> <para >&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 <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 >&kdeprint; 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 &kdeprint; 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 &kdeprint; </title> <para >Du får adgang til &kdeprint; 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 &kdeprint;-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 >kcmshell</command > <option >printers</option ></userinput >. Dette åbner kun &kdeprint;-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> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-namecase-general:t sgml-general-insert-case:lower sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:0 sgml-indent-data:true sgml-parent-document:"index.docbook" "book" End: -->