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

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

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

<sect1 id="brief-description">
<title
>En kortfattad beskrivning av &kdeprint;</title>

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

<sect2 id="what-kdeprint-is-not">
<title
>Vad det <emphasis
>inte</emphasis
> är</title>

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

</sect2>

<sect2 id="what-kde-print-is">
<title
>Vad det <emphasis
>är</emphasis
></title>
<para
>&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.</para>

<para
>&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 <quote
>utskriftssystemet</quote
> i &Qt;, med minimala ändringar. Användare kan lätt välja och anpassa sitt utskriftssystem.</para>

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

</sect2>

</sect1>

<sect1 id="different-users">
<title
>&kdeprint;, olika användning för olika personer</title>

<para
>&kdeprint; visar olika ansikten för olika personer.</para>

<sect2 id="what-users-can-do">
<title
>Vad användare och administratörer kan göra med &kdeprint;</title>

<para
>&kdeprint; låter användare och/eller administratörer, beroende på deras behörigheter, komma åt utskriftssystem (&CUPS;, <acronym
>LPD</acronym
>, <acronym
>RLPR</acronym
>, <application
>LPRng</application
>, <application
>PDQ</application
> 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.</para>

<para
>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 <quote
>vanliga enkla</quote
> &kdeprint;. Läs vidare!</para>

</sect2>


<sect2 id="what-developers-can-do">
<title
>Vad &kde;-utvecklare kan göra med det...</title>

<para
>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 <classname
>QPrinter</classname
>. en biblioteksfunktion i &Qt;-verktygslådan. Klassen <classname
>QPrinter</classname
> använde sig av den urmodiga <quote
>radskrivardemonen</quote
> (<acronym
>LPD</acronym
>). &kdeprint;-biblioteket är i grunden baserat på det modernare &UNIX;-utskriftssystemet (&CUPS;), medan det samtidigt behåller bakåtkompatibilitet med <acronym
>LPD</acronym
> och andra gamla eller mindre sofistikerade utskriftssystem. Dessutom lämnar det <quote
>dörren öppen</quote
> för nyutveckling som kan ske.</para>

<para
>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 <classname
>QPrinter</classname
>, behöver de bara ändra till <classname
>KPrinter</classname
>. 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.</para>

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


<para
>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 <systemitem class="username"
>root</systemitem
>) 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.</para>

<para
>Den här bilden visar ett exempel från verktyget &kcron; <screenshot
> <screeninfo
>&kcron;-verktyget: en litet exempel på systemets schemalagda jobb som visas genom &kde;:s grafiska gränssnitt.</screeninfo
> <mediaobject
> <imageobject
> <imagedata fileref="kcron_to_be_printed.png" format="PNG"/></imageobject
> <textobject
> <phrase
>Utvecklarna av &kcron;-låter dig välja om du ska skriva ut hela schemat eller bara en markerad del av det.</phrase
></textobject
> </mediaobject
> </screenshot
> </para>

<para
>Dialogrutan för att ställa in &kcron;s utskriftsalternativ: den ytterligare fliken som heter <guilabel
>Cron-alternativ</guilabel
> 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.</para>


<screenshot
> <screeninfo
>&kcron;s tillägg till &kdeprint;s dialogruta.</screeninfo
> <mediaobject
> <imageobject
> <imagedata fileref="kprinter_with_kcron_developer_special.png" format="PNG"/></imageobject
> <textobject
> <phrase
>&kcron;s tillägg till &kdeprint;s dialogruta.</phrase
></textobject
> <caption
> <para
>&kcron;s tillägg till &kdeprint;s dialogruta.</para
> </caption
> </mediaobject
> </screenshot>

</sect2>

<sect2>
<title
>Vad &kdeprint; erbjuder åt alla...</title>

<para
>&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 <quote
>i farten</quote
>, från utskriftsdialogrutan (Det här är möjligt om olika system är installerade på ett sådant sätt att de inte <quote
>kommer i vägen för varandra</quote
>.)</para>

<para
>De flesta &UNIX;-användare är vana vid <acronym
>LPD</acronym
>-utskrift. <acronym
>LPD</acronym
> 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 <acronym
>LPD</acronym
> tvåvägskommunikation, behörighetskontroll, åtkomstkontroll och krypteringsstöd.</para>

<para
>&kdeprint; kan använda &CUPS; för att stödja:</para>

<itemizedlist
> <listitem
> <para
>förfrågningar i det lokala nätverket efter tillgängliga skrivare,</para
> </listitem
> <listitem
> <para
>grundläggande-, DIGEST- och certifikatbehörighetskontroll,</para
> </listitem
> <listitem
> <para
>åtkomstkontroll baserat på <acronym
>IP</acronym
>-adresser, nätadresser, nätmaskar, värddatorer och domännamn,</para
> </listitem
> <listitem
> <para
>och 128-bitars TSL eller SSL3 kryptering av utskriftsdata, för att förhindra avlyssning, eller åtminstone göra det mycket svårare.</para
> </listitem
> </itemizedlist>

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

</sect2>
<sect2>
<title
>Hur man kommer åt &kdeprint; </title>

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

<itemizedlist
> <listitem
><para
>genom ditt program. Om du anropar utskriftsdialogrutan (antingen via <menuchoice
><guilabel
>Arkiv</guilabel
> <guilabel
>Skriv ut...</guilabel
></menuchoice
> eller knappen med den lilla skrivarikonen), öppnas utskriftsdialogrutan.</para
></listitem
> <listitem
><para
>genom att skriva in kommandot <command
>kprinter</command
> i en <application
>terminal</application
> eller ett  terminalfönster, eller från fönstret <guilabel
>Kör kommando...</guilabel
>, minikommandoraden. Det här öppnar också utskriftsdialogrutan.</para
></listitem
> <listitem
><para
>från knappen <inlinemediaobject
><imageobject
> <imagedata fileref="kcontrol-icon.png" format="PNG"/></imageobject
> </inlinemediaobject
>, för att starta Inställningscentralen. Välj sedan <menuchoice
><guilabel
>System</guilabel
><guilabel
>Skrivarhanterare</guilabel
></menuchoice
>. 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.</para
></listitem
> <listitem
><para
>skriv <userinput
> <command
>kcmshell</command
> <option
>printmgr</option
></userinput
> från en kommandorad (terminal eller minikommandorad). Det här öppnar bara &kdeprint;-delen av inställningscentralen för att ändra dina inställningar. </para
></listitem
> </itemizedlist>
<screenshot
> <screeninfo
>&kprinter;-dialogrutan som ska startas från fönstret <guilabel
>Kör kommando...</guilabel
></screeninfo
> <mediaobject
> <imageobject
> <imagedata fileref="kprinter_called_from_run_command.png" format="PNG"/></imageobject
> <textobject
> <phrase
>Starta &kprinter;-dialogrutan från fönstret <guilabel
>Kör kommando...</guilabel
>.</phrase
></textobject
> <caption
><para
>Starta &kprinter;-dialogrutan från fönstret <guilabel
>Kör kommando...</guilabel
>.</para
></caption
> </mediaobject
> </screenshot>

<!-- TODO: This one ought to be a screenshot LW. --> <para
>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 <guiicon
>guide</guiicon
>-knappen (markerad röd/gul i den här bilden).</para>
  
<screenshot
> <screeninfo
>&kprinter;s dialogruta efter start (&kivio;-utkast) </screeninfo
> <mediaobject
> <imageobject
> <imagedata fileref="kprinter-kivio.png" format="PNG"/></imageobject
> <textobject
> <phrase
>&kprinter;s dialogruta efter start (&kivio;-utkast)</phrase
></textobject
> <caption
><para
>&kprinter;s dialogruta efter start (&kivio;-utkast)</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:
-->

