You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
347 lines
11 KiB
347 lines
11 KiB
13 years ago
|
<chapter id="technical-overview">
|
||
|
<title
|
||
|
>Technical Overview</title>
|
||
|
|
||
|
<para
|
||
13 years ago
|
>This chapter aims to give a technical overview of &tdeprint; which non-programmers can comprehend.</para>
|
||
13 years ago
|
|
||
|
<para
|
||
13 years ago
|
>&tdeprint; is a new and revolutionary tool to give easy access to printing services for both &kde; users and &kde; developers.</para>
|
||
13 years ago
|
|
||
|
<sect1 id="brief-description">
|
||
|
<title
|
||
13 years ago
|
>A Brief Description of &tdeprint;</title>
|
||
13 years ago
|
|
||
|
<para
|
||
13 years ago
|
>You can access the functions of &tdeprint; in different ways: through the Printing Manger in the &kcontrol;, through the <command
|
||
13 years ago
|
>kprinter</command
|
||
|
> command or through the dialogue that pops up if you want to print.</para>
|
||
|
|
||
13 years ago
|
<sect2 id="what-tdeprint-is-not">
|
||
13 years ago
|
<title
|
||
|
>What it is <emphasis
|
||
|
>not</emphasis
|
||
|
></title>
|
||
|
|
||
|
<para
|
||
13 years ago
|
>&tdeprint; is <emphasis
|
||
13 years ago
|
>not</emphasis
|
||
13 years ago
|
> a replacement for the printing subsystem itself. &tdeprint; does <emphasis
|
||
13 years ago
|
>not</emphasis
|
||
|
> therefore give provision for spooling, and it does <emphasis
|
||
|
>not</emphasis
|
||
|
> do the basic processing of &PostScript; or other print data.</para>
|
||
|
|
||
|
</sect2>
|
||
|
|
||
|
<sect2 id="what-kde-print-is">
|
||
|
<title
|
||
|
>What it <emphasis
|
||
|
>is</emphasis
|
||
|
></title>
|
||
|
<para
|
||
13 years ago
|
>&tdeprint; is an intermediate layer between the spooling and the data processing print subsystem (as installed), and the application that seeks to print. &tdeprint; provides a common interface for &kde; developers and &kde; users, to various supported print subsystems. At the same time, it is customisable, and highly configurable.</para>
|
||
13 years ago
|
|
||
|
<para
|
||
13 years ago
|
>&tdeprint; is easy to use for both &kde; developers and end-users. Developers can port their applications, with minimal changes, to use &tdeprint; instead of the old &Qt; print <quote
|
||
13 years ago
|
>system</quote
|
||
|
>. Users can easily choose and configure their print subsystem.</para>
|
||
|
|
||
|
<para
|
||
|
>For a reference to new &kde; users: &Qt; is the basic library and graphical toolkit, which is used by all &kde; applications; &Qt; is developed by TrollTech, a Norwegian software company.</para>
|
||
|
|
||
|
</sect2>
|
||
|
|
||
|
</sect1>
|
||
|
|
||
|
<sect1 id="different-users">
|
||
|
<title
|
||
13 years ago
|
>&tdeprint; -- Different Usage for Different People</title>
|
||
13 years ago
|
|
||
|
<para
|
||
13 years ago
|
>&tdeprint; has different faces for different people.</para>
|
||
13 years ago
|
|
||
|
<sect2 id="what-users-can-do">
|
||
|
<title
|
||
13 years ago
|
>What users and administrators can do with &tdeprint;</title>
|
||
13 years ago
|
|
||
|
<para
|
||
13 years ago
|
>&tdeprint; allows users and/or administrators, depending on their rights, access to printing subsystems (&CUPS;, <acronym
|
||
13 years ago
|
>LPD</acronym
|
||
|
>, <acronym
|
||
|
>RLPR</acronym
|
||
|
>, <application
|
||
|
>LPRng</application
|
||
|
>, <application
|
||
|
>PDQ</application
|
||
13 years ago
|
> &etc;) through a &kde; graphical user interface (&GUI;). Using &tdeprint;, they can print, administer jobs, printers and the printing daemon, all in a comfortable manner.</para>
|
||
13 years ago
|
|
||
|
<para
|
||
|
>Experienced users will like the capability to plug any working filter for the print data between the output of their application and the input, into the chosen print subsystem. Some examples for this already ship with <quote
|
||
|
>plain vanilla</quote
|
||
13 years ago
|
> &tdeprint;. Read on.</para>
|
||
13 years ago
|
|
||
|
</sect2>
|
||
|
|
||
|
|
||
|
<sect2 id="what-developers-can-do">
|
||
|
<title
|
||
|
>What &kde; developers can do with it...</title>
|
||
|
|
||
|
<para
|
||
|
>If a &kde; developer needs printing access for his application, he does not code the printing functions from scratch. Before &kde; 2.2 this service was provided by the <classname
|
||
|
>QPrinter</classname
|
||
|
> class, a library function of the &Qt; Toolkit. The <classname
|
||
|
>QPrinter</classname
|
||
|
> class relied on the out-moded <quote
|
||
|
>Line Printer Daemon</quote
|
||
|
> (<acronym
|
||
|
>LPD</acronym
|
||
13 years ago
|
>). The &tdeprint; library bases itself firmly on the more modern Common &UNIX; Printing System (&CUPS;), while at the same time keeping backward compatibility with <acronym
|
||
13 years ago
|
>LPD</acronym
|
||
|
> and other legacy, or less elaborate, print systems. It also <quote
|
||
|
>leaves the door open</quote
|
||
|
> for any new development that might occur.</para>
|
||
|
|
||
|
<para
|
||
13 years ago
|
>For &kde; developers to use the new &tdeprint; class in their applications, they require only minimal changes to their code: for every call of <classname
|
||
13 years ago
|
>QPrinter</classname
|
||
|
>, they just need to change this to <classname
|
||
|
>KPrinter</classname
|
||
13 years ago
|
>. Replacing one (!) letter in a few spots, and automatically they are done; their application can then use all of the features of the new &tdeprint; library.</para>
|
||
13 years ago
|
|
||
|
<para
|
||
13 years ago
|
>More ambitious developers, or ones with special requirements, can do more: despite &tdeprint;'s feature-rich framework, they are still able to customise the print dialogue of their application by creating an additional <quote
|
||
13 years ago
|
>Tab</quote
|
||
13 years ago
|
>, where their extensions to the standard &tdeprint; will feel right at home.</para>
|
||
13 years ago
|
|
||
|
|
||
|
<para
|
||
13 years ago
|
>This last mentioned feature has not been used widely inside &kde; so far, as developers are not yet fully aware of &tdeprint;'s power. Expect more of this in the near future. One example I discovered is the &kcron; application. It lets you edit the crontab through a &GUI;. The developers have implemented a printing feature that lets you (or <systemitem class="username"
|
||
13 years ago
|
>root</systemitem
|
||
13 years ago
|
>) choose if you want to print the whole of crontab (for all users) or just the part that is marked. You can see the effects on &tdeprint; in the following screenshots.</para>
|
||
13 years ago
|
|
||
|
<para
|
||
|
>This shot shows a sample from the &kcron; utility. <screenshot>
|
||
|
<screeninfo
|
||
|
>&kcron; utility: a small sample of a system's cronjobs as shown through the &kde; <acronym
|
||
|
>GUI</acronym
|
||
|
>&GUI;.</screeninfo>
|
||
|
<mediaobject>
|
||
|
<imageobject>
|
||
|
<imagedata fileref="kcron_to_be_printed.png"
|
||
|
format="PNG"/></imageobject>
|
||
|
<textobject>
|
||
|
<phrase
|
||
|
>The &kcron; developers let you choose to print the whole of the cron table or just the marked part of it.</phrase
|
||
|
></textobject>
|
||
|
</mediaobject>
|
||
|
</screenshot>
|
||
|
</para>
|
||
|
|
||
|
<para
|
||
|
>The dialogue to configure &kcron;'s printing options: the additional tab titled <guilabel
|
||
|
>Cron Options</guilabel
|
||
13 years ago
|
> is from inside &kcron;, not &tdeprint;; it is a special extension added by the &kcron; developers for printing purposes, not originating from, but executed by &tdeprint;. Developers of other applications are free to implement their own goodies, if they feel need for it.</para>
|
||
13 years ago
|
|
||
|
|
||
|
<screenshot>
|
||
|
<screeninfo
|
||
13 years ago
|
>&kcron;'s addition to the &tdeprint; dialogue.</screeninfo>
|
||
13 years ago
|
<mediaobject>
|
||
|
<imageobject>
|
||
|
<imagedata fileref="kprinter_with_kcron_developer_special.png"
|
||
|
format="PNG"/></imageobject>
|
||
|
<textobject>
|
||
|
<phrase
|
||
13 years ago
|
>&kcron;'s addition to the &tdeprint; dialogue.</phrase
|
||
13 years ago
|
></textobject>
|
||
|
<caption>
|
||
|
<para
|
||
13 years ago
|
>&kcron;'s addition to the &tdeprint; dialogue.</para>
|
||
13 years ago
|
</caption>
|
||
|
</mediaobject>
|
||
|
</screenshot>
|
||
|
|
||
|
</sect2>
|
||
|
|
||
|
<sect2>
|
||
|
<title
|
||
13 years ago
|
>What &tdeprint; offers to everybody...</title>
|
||
13 years ago
|
|
||
|
<para
|
||
13 years ago
|
>&tdeprint;'s easy-to-use interface for all supported print subsystems of course does not eliminate basic traditional weaknesses of some of those systems. But it smooths some rough edges. Different users may use different printing systems on the same box. A user is free to even switch <quote
|
||
13 years ago
|
>on the fly</quote
|
||
|
>, from the print dialogue, the print subsystem to be used for the next job. (This is possible if different systems are installed in a way that they don't <quote
|
||
|
>get in each other's way</quote
|
||
|
>.)</para>
|
||
|
|
||
|
<para
|
||
|
>Most &UNIX; users are used to <acronym
|
||
|
>LPD</acronym
|
||
|
> printing. <acronym
|
||
|
>LPD</acronym
|
||
|
> provides only basic printing functions, is very inflexible and does not utilise the many options of more modern print systems like &CUPS;. While also working remotely over any distance (like every TCP/IP based protocol), <acronym
|
||
|
>LPD</acronym
|
||
|
> lacks bi-directional communication, authentication, access control and encryption support.</para>
|
||
|
|
||
|
<para
|
||
13 years ago
|
>&tdeprint; can use &CUPS; to support:</para>
|
||
13 years ago
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para
|
||
|
>Querying the <acronym
|
||
|
>LAN</acronym
|
||
|
> for available printers,</para>
|
||
|
</listitem>
|
||
|
<listitem>
|
||
|
<para
|
||
|
>Basic, Digest, and Certificate Authentication,</para>
|
||
|
</listitem>
|
||
|
<listitem>
|
||
|
<para
|
||
|
>Access Control based on <acronym
|
||
|
>IP</acronym
|
||
|
> addresses, net addresses, netmasks, host- and domain names,</para>
|
||
|
</listitem>
|
||
|
<listitem>
|
||
|
<para
|
||
|
>and 128-Bit TLS or SSL3 encryption of print data, to prevent eavesdropping, or at least make it much more difficult.</para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
|
||
|
<para
|
||
13 years ago
|
>This makes &tdeprint; a much more robust and reliable solution than using the venerable <acronym
|
||
13 years ago
|
>LPD</acronym
|
||
|
>.</para>
|
||
|
|
||
|
</sect2>
|
||
|
<sect2>
|
||
|
<title
|
||
13 years ago
|
>How to access &tdeprint; </title>
|
||
13 years ago
|
|
||
|
<para
|
||
13 years ago
|
>You get access to &tdeprint;, or parts of it, in four different ways:</para>
|
||
13 years ago
|
|
||
|
<itemizedlist>
|
||
|
<listitem
|
||
|
><para
|
||
|
>through your applications: if you call the printing dialogue (either <menuchoice
|
||
|
><guilabel
|
||
|
>File</guilabel
|
||
|
> <guilabel
|
||
|
>Print...</guilabel
|
||
|
></menuchoice
|
||
|
>) or the button with the little printer icon on it; this opens the printing dialogue.</para
|
||
|
></listitem>
|
||
|
|
||
|
<listitem
|
||
|
><para
|
||
|
>through the typed command <command
|
||
|
>kprinter</command
|
||
|
> in a <application
|
||
|
>terminal</application
|
||
|
> or a &konsole; window or from the <guilabel
|
||
|
>Run Command...</guilabel
|
||
|
> mini-<acronym
|
||
|
>CLI</acronym
|
||
|
> window: this also opens the printing dialogue.</para
|
||
|
></listitem>
|
||
|
|
||
|
<listitem
|
||
|
><para
|
||
|
>from the <inlinemediaobject
|
||
|
><imageobject
|
||
|
> <imagedata fileref="kcontrol-icon.png" format="PNG"/></imageobject
|
||
|
> </inlinemediaobject
|
||
|
> button, starting &kcontrol;, and then go to <menuchoice
|
||
|
><guilabel
|
||
|
>System</guilabel
|
||
|
><guilabel
|
||
|
>Printing Manager</guilabel
|
||
|
></menuchoice
|
||
13 years ago
|
>. This opens the &tdeprint; administration which is part of the &kcontrolcenter; and also lets you switch to other parts of the &kcontrol;</para
|
||
13 years ago
|
></listitem>
|
||
|
|
||
|
<listitem
|
||
|
><para
|
||
|
>from a command line (&konsole; or mini-<acronym
|
||
|
>CLI</acronym
|
||
|
>) type <userinput
|
||
|
> <command
|
||
|
>kcmshell</command
|
||
|
> <option
|
||
|
>printmgr</option
|
||
|
></userinput
|
||
13 years ago
|
>. This opens just the &tdeprint; part of &kcontrol; to change your settings </para
|
||
13 years ago
|
></listitem>
|
||
|
</itemizedlist>
|
||
|
<screenshot>
|
||
|
<screeninfo
|
||
|
>&kprinter; dialogue to be started from <guilabel
|
||
|
>Run Command...</guilabel
|
||
|
> window</screeninfo>
|
||
|
<mediaobject>
|
||
|
<imageobject>
|
||
|
<imagedata fileref="kprinter_called_from_run_command.png"
|
||
|
format="PNG"/></imageobject>
|
||
|
<textobject>
|
||
|
<phrase
|
||
|
>Starting the &kprinter; dialogue from a <guilabel
|
||
|
>Run Command...</guilabel
|
||
|
> window.</phrase
|
||
|
></textobject>
|
||
|
<caption
|
||
|
><para
|
||
|
>Starting the &kprinter; dialogue from a <guilabel
|
||
|
>Run Command...</guilabel
|
||
|
> window.</para
|
||
|
></caption>
|
||
|
</mediaobject>
|
||
|
</screenshot>
|
||
|
|
||
|
<!-- TODO: This one ought to be a screenshot LW. --> <para
|
||
|
>Here is a &kivio; drawing of the &kprinter; dialogue as it pops up after being started... You can always add a new printer by clicking on the small <guiicon
|
||
|
>Wizard</guiicon
|
||
|
> button (marked red/yellow in this drawing).</para>
|
||
|
|
||
|
<screenshot>
|
||
|
<screeninfo
|
||
|
>&kprinter; dialogue started (&kivio; draft drawing) </screeninfo>
|
||
|
<mediaobject>
|
||
|
<imageobject>
|
||
|
<imagedata fileref="kprinter-kivio.png"
|
||
|
format="PNG"/></imageobject>
|
||
|
<textobject>
|
||
|
<phrase
|
||
|
>&kprinter; dialogue started (&kivio; draft drawing)</phrase
|
||
|
></textobject>
|
||
|
<caption
|
||
|
><para
|
||
|
>&kprinter; dialogue started (&kivio; draft drawing)</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:
|
||
|
-->
|