aboutsummaryrefslogtreecommitdiff
path: root/fr_FR.ISO8859-1/books/handbook/printing/chapter.xml
diff options
context:
space:
mode:
Diffstat (limited to 'fr_FR.ISO8859-1/books/handbook/printing/chapter.xml')
-rwxr-xr-xfr_FR.ISO8859-1/books/handbook/printing/chapter.xml4649
1 files changed, 4649 insertions, 0 deletions
diff --git a/fr_FR.ISO8859-1/books/handbook/printing/chapter.xml b/fr_FR.ISO8859-1/books/handbook/printing/chapter.xml
new file mode 100755
index 0000000000..5e08df4535
--- /dev/null
+++ b/fr_FR.ISO8859-1/books/handbook/printing/chapter.xml
@@ -0,0 +1,4649 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
+<!--
+ The FreeBSD Documentation Project
+ The FreeBSD French Documentation Project
+
+ $FreeBSD$
+ Original revision: 1.96
+-->
+
+<chapter id="printing">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Sean</firstname>
+ <surname>Kelly</surname>
+ <contrib>Contribution de </contrib>
+ </author>
+ <!-- 30 Sept 1995 -->
+ </authorgroup>
+
+ <authorgroup>
+ <author>
+ <firstname>Jim</firstname>
+ <surname>Mock</surname>
+ <contrib>Restructuré et mis &agrave; jour par </contrib>
+ <!-- Mar 2000 -->
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Imprimer</title>
+ &trans.a.delfly;
+
+ <sect1 id="printing-synopsis">
+ <title>Synopsis</title>
+
+ <indexterm><primary>gestionnaire d'impression
+ LPD</primary></indexterm>
+ <indexterm><primary>imprimer</primary></indexterm>
+
+ <para>&os; peut être utilisé pour imprimer sur une
+ grande variété d'imprimantes, depuis la plus
+ ancienne des imprimantes matricielles jusqu'aux toutes
+ dernières imprimantes laser, en passant par tout ce qui
+ peut exister entre les deux, et vous permet d'obtenir des
+ impressions de haute qualité avec les programmes que vous
+ exécutez.</para>
+
+ <para>Il est également possible de configurer &os; pour
+ qu'il fasse office de serveur d'impression sur un réseau;
+ de cette manière &os; peut recevoir des travaux
+ d'impression (<quote>jobs</quote>) en provenance de
+ différents ordinateurs, comprenant d'autres machines sous
+ &os; et des machines sous &windows; ou &macos;. &os;
+ veillera &agrave; ce qu'un seul travail d'impression ne soit
+ imprimé &agrave; la fois, et pourra tenir des
+ statistiques sur les utilisateurs et les machines lançant
+ le plus d'impressions, produire des pages
+ d'<quote>en-têtes</quote> pour distinguer les impressions
+ de chacun, et plus encore.</para>
+
+ <para>Après la lecture de ce chapitre, vous saurez:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Comment configurer le gestionnaire d'impression de
+ &os;</para>
+ </listitem>
+
+ <listitem>
+ <para>Comment installer des filtres d'impression, pour
+ gérer des travaux d'impression particuliers de
+ manière différente, ce qui inclut la
+ transformation de documents entrants en un format que vos
+ imprimantes comprennent.</para>
+ </listitem>
+
+ <listitem>
+ <para>Comment inclure des en-têtes ou des pages
+ bannière dans vos impressions.</para>
+ </listitem>
+
+ <listitem>
+ <para>Comment imprimer en utilisant des imprimantes
+ connectées &agrave; d'autres ordinateurs.</para>
+ </listitem>
+
+ <listitem>
+ <para>Comment imprimer en utilisant des imprimantes
+ connectées directement au réseau.</para>
+ </listitem>
+
+ <listitem>
+ <para>Comment gérer des restrictions d'impression,
+ notamment comment limiter la taille des travaux
+ d'impression, et empêcher certains utilisateurs
+ d'imprimer.</para>
+ </listitem>
+
+ <listitem>
+ <para>Comment tenir des statistiques d'impression, et rendre
+ compte de l'utilisation de l'imprimante.</para>
+ </listitem>
+
+ <listitem>
+ <para>Comment résoudre les problèmes
+ d'impression.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Avant de lire ce chapitre, vous devriez:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Savoir comment configurer et installer un nouveau noyau
+ (<xref linkend="kernelconfig"/>).</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="printing-intro-spooler">
+ <title>Introduction</title>
+
+ <para>Afin d'utiliser des imprimantes avec &os;, vous avez la
+ possibilité de les paramétrer pour qu'elles
+ utilisent le gestionnaire d'impression de Berkeley,
+ également connu sous le nom de gestionnaire d'impression
+ <application>LPD</application>, ou tout simplement
+ <application>LPD</application>. C'est le système
+ contrôle d'imprimante par défaut de &os;. Ce
+ chapitre présente <application>LPD</application> et vous
+ assistera tout au long de sa configuration.</para>
+
+ <para>Si vous connaissez déj&agrave;
+ <application>LPD</application> ou un autre système de
+ gestion des impressions, vous pouvez directement vous rendre
+ &agrave; la section <link
+ linkend="printing-intro-setup">Paramétrage de
+ base</link>.</para>
+
+ <para><application>LPD</application> contrôle tout ce qui
+ relève des imprimantes. Il est
+ responsable de plusieurs tâches:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Il contrôle l'accès aux imprimantes
+ directement connectées au système ainsi
+ qu'&agrave; celles connectées &agrave; d'autres
+ machines via le réseau.</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>travaux d'impression</primary></indexterm>
+
+ <para>Il permet aux utilisateurs de soumettre des fichiers
+ &agrave; imprimer; ces requêtes sont connues sous le
+ nom de <emphasis>travaux</emphasis>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Il empêche l'accès simultané de
+ plusieurs utilisateurs &agrave; une même imprimante,
+ en gérant une <emphasis>queue</emphasis> pour chaque
+ imprimante.</para>
+ </listitem>
+
+ <listitem>
+ <para>Il peut produire des <emphasis>pages
+ d'en-tête</emphasis> (également connues sous le
+ nom de <emphasis>pages bannières</emphasis> ou encore
+ <emphasis>cartouches</emphasis>) afin que les utilisateurs
+ puissent facilement retrouver dans une pile d'impressions
+ celles correspondant aux travaux qu'ils ont soumis.</para>
+ </listitem>
+
+ <listitem>
+ <para>Il s'occupe de paramétrer les communications
+ lorsque les imprimantes sont connectées via un port
+ série.</para>
+ </listitem>
+
+ <listitem>
+ <para>Il peut transmettre des travaux par réseau
+ &agrave; un gestionnaire d'impression
+ <application>LPD</application> situé sur une autre
+ machine.</para>
+ </listitem>
+
+ <listitem>
+ <para>Il peut appliquer des filtres spéciaux afin
+ d'assurer le formatage des travaux en fonction des
+ différents langages et caractéristiques des
+ imprimantes.</para>
+ </listitem>
+
+ <listitem>
+ <para>Il peut comptabiliser l'utilisation de
+ l'imprimante.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Vous pouvez, au travers d'un fichier de configuration
+ (<filename>/etc/printcap</filename>) et en fournissant les
+ programmes de filtres spéciaux, faire exécuter par
+ <application>LPD</application> tout ou partie des tâches
+ mentionnées ci-dessus sur une grande
+ variété de modèles d'imprimantes.</para>
+
+ <sect2 id="printing-intro-why">
+ <title>Pourquoi vous devriez utiliser le gestionnaire
+ d'impression</title>
+
+ <para>Si vous êtes l'unique utilisateur de votre
+ système, vous vous demandez sans doute pourquoi il vous
+ faudrait vous préoccuper du gestionnaire d'impression,
+ alors que vous n'avez pas besoin de contrôle
+ d'accès, de pages d'en-tête ni de statistiques
+ relatives &agrave; l'utilisation de l'imprimante. Quand bien
+ même il est possible de mettre en oeuvre l'accès
+ direct &agrave; l'imprimante, vous devriez tout de même
+ utiliser le gestionnaire d'impression, parce que:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><application>LPD</application> imprime les travaux en
+ tâche de fond: vous n'êtes pas obligé
+ d'attendre que les données soient passées
+ &agrave; l'imprimante.</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>&tex;</primary></indexterm>
+
+ <para><application>LPD</application> peut commodément
+ se charger d'appliquer des filtres &agrave; un travail
+ pour adjoindre une en-tête contenant la date et
+ l'heure, ou convertir un fichier au format particulier
+ (comme un fichier DVI &tex;) en un format que l'imprimante
+ comprenne. Ainsi, vous n'aurez pas &agrave; vous charger
+ de ces manipulations &agrave; la main.</para>
+ </listitem>
+
+ <listitem>
+ <para>Beaucoup d'applications, tant libres que commerciales,
+ fournissant une fonctionnalité d'impression
+ s'attendent généralement &agrave; traiter
+ avec le gestionnaire d'impression. En le mettant en
+ oeuvre, vous vous faciliterez le support des autres
+ applications que vous pourriez ajouter plus tard, ou que
+ vous avez déj&agrave; installées.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="printing-intro-setup">
+ <title>Configuration de base</title>
+
+ <para>Pour utiliser des imprimantes avec le gestionnaire
+ d'impression, il vous faudra configurer &agrave; la fois la
+ partie matérielle (c'est &agrave; dire les imprimantes)
+ et la partie logicielle (c'est &agrave; dire
+ <application>LPD</application>). Ce document présente
+ deux niveaux de configuration:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>La section <link linkend="printing-simple">Configuration
+ simple de l'imprimante</link> vous apprendra &agrave;
+ connecter une imprimante, &agrave; renseigner
+ <application>LPD</application> sur la façon dont il
+ doit communiquer avec elle, et &agrave; imprimer de simples
+ fichiers textes.</para>
+ </listitem>
+
+ <listitem>
+ <para>La section <link
+ linkend="printing-advanced">Configuration avancée de
+ l'imprimante</link> vous apprendra &agrave; imprimer
+ différents formats de fichiers, des pages
+ d'en-tête, par l'intermédiaire d'un
+ réseau, &agrave; contrôler l'accès aux
+ imprimantes, et comptabiliser leur utilisation.</para>
+ </listitem>
+ </itemizedlist>
+
+ <sect2 id="printing-simple">
+ <title>Configuration simple de l'imprimante</title>
+
+ <para>Cette section vous apprendra &agrave; configurer
+ l'imprimante et <application>LPD</application>. Elle
+ présente les bases:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>La section <link
+ linkend="printing-hardware">Configuration
+ matérielle</link> donne des indications sur la
+ façon de connecter l'imprimante &agrave; l'un des
+ ports de votre ordinateur.</para>
+ </listitem>
+
+ <listitem>
+ <para>La section <link
+ linkend="printing-software">Configuration
+ logicielle</link> montre comment renseigner le fichier de
+ configuration du gestionnaire d'impression
+ <application>LPD</application>
+ (<filename>/etc/printcap</filename>).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Si vous mettez en oeuvre une imprimante
+ réceptionnant les données &agrave; imprimer via
+ un protocole réseau plutôt que par les interfaces
+ locales de l'ordinateur, lisez la section <link
+ linkend="printing-advanced-network-net-if">Imprimantes avec
+ des interfaces utilisant des flux réseau</link>.</para>
+
+ <para>Bien que cette section soit intitulée
+ <quote>Configuration simple de l'imprimante</quote>, elle
+ s'avère en réalité plutôt complexe.
+ La partie la plus difficile consiste &agrave; faire
+ fonctionner l'imprimante avec votre ordinateur et
+ <application>LPD</application>. Les options avancées
+ telles les pages d'en-tête ou les statistiques sont
+ relativement faciles &agrave; mettre en oeuvre une fois que
+ l'imprimante fonctionne.</para>
+
+ <sect3 id="printing-hardware">
+ <title>Configuration matérielle</title>
+
+ <para>Cette section détaille les différentes
+ manières de connecter une imprimante &agrave; votre
+ PC. Elle discute les types de ports et de câbles, et
+ de la configuration noyau dont vous pourriez avoir besoin
+ afin que &os; puisse communiquer avec l'imprimante.</para>
+
+ <para>Si vous avez déj&agrave; connecté votre
+ imprimante et réussi &agrave; imprimer sous un autre
+ système d'exploitation, vous pouvez probablement
+ passer &agrave; la section <link
+ linkend="printing-software">Configuration
+ logicielle</link>.</para>
+
+ <sect4 id="printing-ports">
+ <title>Les ports et les câbles</title>
+
+ <para>Les imprimantes pour PC vendues aujourd'hui sont en
+ général pourvues d'une ou plusieurs des
+ trois interfaces suivantes:</para>
+
+ <itemizedlist>
+ <listitem>
+ <indexterm>
+ <primary>imprimantes</primary>
+ <secondary>série</secondary>
+ </indexterm>
+
+ <para>Les interfaces <emphasis>série</emphasis>,
+ également connues sous les noms RS-232 ou ports
+ COM, utilisent un port série sur votre
+ ordinateur pour envoyer des données &agrave;
+ l'imprimante. Les interfaces série sont
+ courantes, dans l'industrie informatique, et les
+ câbles sont &agrave; la fois disponibles et
+ faciles &agrave; réaliser. Elles
+ réclament parfois des câbles
+ spéciaux et peuvent nécessiter le
+ paramétrage d'options de communication assez
+ complexes. La plupart des ports série PC ont
+ une vitesse de transmission maximale de 115200 bps, ce
+ qui rend l'impression de travaux comportant beaucoup de
+ graphismes malaisée.</para>
+ </listitem>
+
+ <listitem>
+ <indexterm>
+ <primary>imprimantes</primary>
+ <secondary>parallèle</secondary>
+ </indexterm>
+
+ <para>Les interfaces
+ <emphasis>parallèles</emphasis> utilisent un
+ port parallèle sur votre ordinateur pour envoyer
+ des données &agrave; l'imprimante. Les
+ interfaces parallèles sont courantes dans
+ l'industrie informatique et plus rapides que les
+ interfaces série RS-232. Les câbles sont
+ disponibles mais sont moins faciles &agrave; fabriquer
+ &agrave; la main. En général, il n'y a
+ aucune option de communication &agrave;
+ paramétrer avec ces interfaces, ce qui rend leur
+ configuration particulièrement simple.</para>
+
+ <indexterm>
+ <primary>centronics</primary>
+ <see>imprimantes parallèle</see>
+ </indexterm>
+
+ <para>Les interfaces parallèles sont parfois
+ appelées <quote>Centronics</quote>, nom
+ tiré du type de connecteur de
+ l'imprimante</para>
+ </listitem>
+
+ <listitem>
+ <indexterm>
+ <primary>imprimantes</primary>
+ <secondary>USB</secondary>
+ </indexterm>
+
+ <para>Les interfaces USB, tenant leur nom de
+ <quote>Universal Serial Bus</quote>, ou <quote>Bus
+ Série Universel</quote>, s'avèrent plus
+ véloces encore que les interfaces
+ parallèles ou série RS-232. Les
+ câbles sont simples et peu onéreux. L'USB
+ surpasse les interfaces série RS-232 et
+ parallèles pour l'impression, mais son support
+ par les systèmes &unix; n'est pas aussi bon.
+ Une façon d'éviter ce problème est
+ d'acheter une imprimante qui dispose &agrave; la fois
+ d'une interface USB et d'une interface
+ parallèle, comme beaucoup de
+ modèles.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>En règle générale, les interfaces
+ parallèles n'offrent qu'une communication
+ unidirectionnelle (de l'ordinateur vers l'imprimante)
+ alors que les interfaces série et USB permettent un
+ échange bidirectionnel. Les imprimantes et ports
+ parallèles plus récents (EPP et ECP) peuvent
+ communiquer dans les deux sens sous &os; lorsque l'on a
+ recourt &agrave; un câble conforme &agrave; la norme
+ IEEE-1284.</para>
+
+ <indexterm><primary>PostScript</primary></indexterm>
+
+ <para>La communication bidirectionnelle avec l'imprimante en
+ utilisant un port parallèle se fait en
+ général de l'une des deux manières
+ suivantes. La première utilise un pilote
+ d'imprimante compilé pour &os; comprenant le
+ langage propriétaire de l'imprimante. C'est
+ couramment le cas des imprimantes jet d'encre et cela peut
+ être utilisé pour retourner les niveaux
+ d'encre et autres informations d'état. La seconde
+ méthode est employée lorsque l'imprimante
+ supporte &postscript;.</para>
+
+ <para>Les travaux &postscript; sont en fait des programmes
+ envoyés &agrave; l'imprimante. Ils ne
+ génèrent pas nécessairement de sortie
+ papier et peuvent retourner leurs résultats
+ directement &agrave; l'ordinateur. &postscript; utilise
+ aussi la communication bidirectionnelle pour avertir
+ l'ordinateur de problèmes, comme des erreurs dans
+ le programme &postscript; ou des bourrages papier. Vos
+ utilisateurs apprécieraient certainement de telles
+ informations. De surcroît, la meilleure
+ façon de tenir des statistiques sérieusement
+ avec une imprimante &postscript; nécessite la
+ communication bidirectionnelle: on demande &agrave;
+ l'imprimante quel est son compteur de pages (combien en
+ a-t-elle imprimées depuis sa fabrication), puis on
+ lui envoie le travail de l'utilisateur, enfin on lui
+ redemande son compteur de pages. La différence
+ entre les deux valeurs donne la consommation de papier que
+ vous pouvez attribuer &agrave; cet utilisateur.</para>
+ </sect4>
+
+ <sect4 id="printing-parallel">
+ <title>Les ports parallèles</title>
+
+ <para>Pour raccorder une imprimante utilisant une interface
+ parallèle, branchez le câble Centronics sur
+ l'imprimante et sur l'ordinateur. Les instructions
+ accompagnant l'imprimante, l'ordinateur, ou les deux,
+ devraient parfaitement vous renseigner.</para>
+
+ <para>Souvenez-vous du port parallèle que vous avez
+ utilisé sur l'ordinateur. Pour &os;, le premier se
+ nomme <filename>ppc0</filename>; le deuxième,
+ <filename>ppc1</filename>, et ainsi de suite. Le nom du
+ fichier spécial de périphérique de
+ l'imprimante suit les mêmes règles:
+ <filename>/dev/lpt0</filename> pour celle connectée
+ sur le premier port parallèle, etc.</para>
+ </sect4>
+
+ <sect4 id="printing-serial">
+ <title>Les ports série</title>
+
+ <para>Pour raccorder une imprimante utilisant une interface
+ série, branchez le câble série
+ adéquat sur l'imprimante et sur l'ordinateur. Les
+ instructions accompagnant l'imprimante, l'ordinateur, ou
+ les deux, devraient parfaitement vous renseigner.</para>
+
+ <para>Si vous n'êtes pas sûr de savoir quel est
+ le bon câble, voici ce que vous pouvez
+ essayer:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Un câble <emphasis>modem</emphasis> relie
+ chacune des broches du connecteur depuis l'une des
+ extrémités du câble directement
+ &agrave; la broche lui correspondant dans le
+ connecteur de l'autre extrémité. Ce
+ type de câble est également connu sous le
+ nom de câble <quote>DTE-to-DCE</quote>.</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>câble
+ null-modem</primary></indexterm>
+
+ <para>Un câble <emphasis>null-modem</emphasis>
+ relie certaines des broches directement, en
+ intervertit d'autres (par exemple,
+ <quote>émission de données</quote> et
+ <quote>réception de données</quote>), et
+ en court-circuite d'autres en interne sur chacun des
+ sertissages des connecteurs. Ce type de câble
+ est également connu sous le nom de câble
+ <quote>DTE-to-DTE</quote>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Un câble <emphasis>série pour
+ imprimante</emphasis>, requis par certaines
+ imprimantes peu conventionnelles, ressemble au
+ câble null-modem, &agrave; ceci près
+ qu'il envoie certains signaux &agrave; l'autre
+ extrémité au lieu de les court-circuiter
+ en interne.</para>
+ </listitem>
+ </itemizedlist>
+
+ <indexterm><primary>vitesse de
+ transmission</primary></indexterm>
+ <indexterm><primary>parité</primary></indexterm>
+ <indexterm><primary>protocole de contrôle de
+ flux</primary></indexterm>
+
+ <para>Vous devriez également définir les
+ paramètres de communication pour l'imprimante,
+ d'ordinaire en utilisant les contrôles sur la face
+ avant ou les commutateurs sur l'imprimante. Choisissez la
+ valeur la plus élevée de
+ <literal>bps</literal> (bits par seconde, encore
+ appelés <quote>vitesse de transmission</quote>)
+ autorisée conjointement par votre ordinateur et
+ votre imprimante. Choisissez 7 ou 8 bits de
+ données; aucun contrôle de parité ou
+ un bit de parité paire ou impaire; et 1 ou 2 bits
+ d'arrêt. Choisissez également un protocole
+ de contrôle de flux: soit aucun, soit XON/XOFF
+ (également appelé <quote>in-band</quote>, ou
+ encore <quote>contrôle logiciel</quote>). Retenez
+ ces paramètres pour la configuration logicielle,
+ dans la section qui suit.</para>
+ </sect4>
+ </sect3>
+
+ <sect3 id="printing-software">
+ <title>Configuration logicielle</title>
+
+ <para>Cette section détaille la configuration
+ logicielle nécessaire pour imprimer sous &os; avec le
+ gestionnaire d'impression
+ <application>LPD</application>.</para>
+
+ <para>Voici un aperçu des étapes &agrave;
+ suivre:</para>
+
+ <procedure>
+ <step>
+ <para>Configurez le noyau, si nécessaire, pour
+ utiliser le port sur lequel vous raccorderez votre
+ imprimante; la section <link
+ linkend="printing-kernel">Configurer le noyau de
+ &os;</link> vous donnera la marche &agrave;
+ suivre.</para>
+ </step>
+
+ <step>
+ <para>Paramétrez le mode de communication du port
+ parallèle si vous utilisez une imprimante de ce
+ type; la section <link
+ linkend="printing-parallel-port-mode">Paramétrer
+ le mode de communication du port parallèle</link>
+ vous donnera les détails.</para>
+ </step>
+
+ <step>
+ <para>Configurez <application>LPD</application> pour qu'il
+ communique avec l'imprimante en renseignant le fichier
+ <filename>/etc/printcap</filename>. Vous apprendrez
+ comment faire un peu plus loin dans ce chapitre.</para>
+ </step>
+ </procedure>
+
+ <sect4 id="printing-kernel">
+ <title>Configuration du noyau</title>
+
+ <para>Le noyau du système d'exploitation est
+ compilé avec le support d'un certain ensemble de
+ périphériques. Les interfaces série
+ ou parallèle de votre imprimante en font partie.
+ De ce fait, vous pourriez avoir &agrave; ajouter le
+ support d'un port série ou parallèle
+ supplémentaire si votre noyau n'a pas
+ déj&agrave; été configuré en
+ ce sens.</para>
+
+ <para>Pour savoir si le support d'une interface série
+ est activé dans le noyau que vous êtes en
+ train d'utiliser, entrez:</para>
+
+ <screen>&prompt.root; <userinput>grep sio<replaceable>N</replaceable> /var/run/dmesg.boot</userinput></screen>
+
+ <para>Où <replaceable>N</replaceable>
+ représente le numéro du port série,
+ en commençant &agrave; zéro. Si vous
+ obtenez un affichage similaire &agrave;:</para>
+
+ <screen>sio2 at port 0x3e8-0x3ef irq 5 on isa sio2: type 16550A</screen>
+
+ <para>alors le port est activé dans le noyau.</para>
+
+ <para>Pour savoir si le noyau supporte une interface
+ parallèle, entrez:</para>
+
+ <screen>&prompt.root; <userinput>grep ppc<replaceable>N</replaceable> /var/run/dmesg.boot</userinput></screen>
+
+ <para>Où <replaceable>N</replaceable>
+ représente le numéro du port
+ parallèle, en commençant &agrave;
+ zéro. Si vous obtenez un affichage similaire
+ &agrave;:</para>
+
+ <screen>ppc0: &lt;Parallel port&gt; at port 0x378-0x37f irq 7 on isa0
+ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
+ppc0: FIFO with 16/16/8 bytes threshold</screen>
+
+ <para>alors le port est activé dans le noyau.</para>
+
+ <para>Il se pourrait que vous ayez &agrave; reconfigurer le
+ noyau afin que le système détecte et puisse
+ utiliser un port parallèle ou série auquel
+ vous avez connecté votre imprimante.</para>
+
+ <para>Pour ajouter le support d'un port série, voyez
+ la section sur la configuration du noyau. Pour ajouter le
+ support du port parallèle, voyez cette même
+ section <emphasis>et</emphasis> celle qui suit.</para>
+ </sect4>
+ </sect3>
+
+ <sect3 id="printing-parallel-port-mode">
+ <title>Paramétrer le mode de communication du port
+ parallèle</title>
+
+ <para>Lorsque vous utilisez l'interface parallèle, vous
+ avez le choix entre deux modes de communication avec
+ l'imprimante: par interruption, ou par polling
+ (interrogation régulière ou scrutation). Le
+ pilote d'imprimante générique (&man.lpt.4;) de
+ &os; utilise le système &man.ppbus.4;, qui
+ contrôle le chipset du port via le pilote
+ &man.ppc.4;.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Le mode par <emphasis>interruption</emphasis> est le
+ mode par défaut avec un noyau GENERIC. De cette
+ manière, le système d'exploitation utilise
+ une ligne d'interruption (IRQ) pour déterminer si
+ l'imprimante est prête &agrave; recevoir des
+ données.</para>
+ </listitem>
+
+ <listitem>
+ <para>Le mode <emphasis>par scrutation</emphasis> enjoint
+ au système d'exploitation d'interroger &agrave;
+ intervalles réguliers l'imprimante pour savoir si
+ elle est prête &agrave; recevoir d'autres
+ données. Lorsqu'elle répond par
+ l'affirmative, le noyau lui en envoie plus.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Le mode par interruption est en général
+ nettement plus rapide, mais consomme une précieuse
+ ligne d'interruption (IRQ). On rapporte que certaines
+ imprimantes HP récentes ne fonctionneraient pas
+ correctement en mode par interruption, apparemment &agrave;
+ cause d'un problème (pas encore très bien
+ identifié) d'horloge. Ces imprimantes
+ nécessitent le recours au mode par scrutation.
+ Utilisez celui des deux qui fonctionne. Certaines
+ imprimantes fonctionnent dans les deux modes, mais
+ s'avèrent désagréablement lentes en
+ mode par interruption.</para>
+
+ <para>Vous pouvez choisir le mode de communication de deux
+ manières différentes: en configurant le noyau
+ ou en utilisant le programme &man.lptcontrol.8;.</para>
+
+ <para><emphasis>Pour paramétrer le mode de
+ communication en configurant le noyau:</emphasis></para>
+
+ <procedure>
+ <step>
+ <para>Editez le fichier de configuration de votre noyau.
+ Cherchez une entrée <literal>ppc0</literal>. Si
+ vous voulez configurer le deuxième port
+ parallèle, cherchez plutôt
+ <literal>ppc1</literal>. Ou <literal>ppc2</literal>
+ pour le troisième, et ainsi de suite.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Si vous souhaitez activer le mode par
+ interruption, éditez la ligne
+ suivante:</para>
+
+ <programlisting>hint.ppc.0.irq="<replaceable>N</replaceable>"</programlisting>
+
+ <para>dans le fichier
+ <filename>/boot/device.hints</filename> et remplacez
+ <replaceable>N</replaceable> par le numéro
+ d'IRQ approprié. Le fichier de configuration
+ du noyau doit également comporter le pilote
+ &man.ppc.4;:</para>
+
+ <programlisting>device ppc</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>Si vous souhaitez activer le mode par
+ scrutation, ôtez la ligne suivante de votre
+ fichier
+ <filename>/boot/device.hints</filename>:</para>
+
+ <programlisting>hint.ppc.0.irq="<replaceable>N</replaceable>"</programlisting>
+
+ <para>Dans certains cas, positionner le port en mode
+ scrutation sous &os; n'est pas suffisant. La
+ plupart du temps cela vient du pilote &man.acpi.4;,
+ ce dernier étant capable de sonder et
+ d'attacher des périphériques, et donc
+ de contrôler le mode d'accès au port de
+ l'imprimante. Vous devrez donc vérifier
+ votre configuration &man.acpi.4; pour
+ résoudre ce problème.</para>
+ </listitem>
+ </itemizedlist>
+ </step>
+
+ <step>
+ <para>Sauvegardez le fichier, puis configurez, compilez,
+ et installez le noyau avant de redémarrer.
+ Consultez la section <link
+ linkend="kernelconfig">configuration du noyau</link>
+ pour plus de détails.</para>
+ </step>
+ </procedure>
+
+ <para><emphasis>Pour paramétrer le mode de
+ communication avec</emphasis> &man.lptcontrol.8;:</para>
+
+ <procedure>
+ <step>
+ <para>Entrez:</para>
+
+ <screen>&prompt.root; <userinput>lptcontrol -i -d /dev/lpt<replaceable>N</replaceable></userinput></screen>
+
+ <para>pour sélectionner le mode par interruption
+ pour
+ <literal>lpt<replaceable>N</replaceable></literal>.</para>
+ </step>
+
+ <step>
+ <para>Entrez:</para>
+
+ <screen>&prompt.root; <userinput>lptcontrol -p -d /dev/lpt<replaceable>N</replaceable></userinput></screen>
+
+ <para>pour sélectionner le mode par scrutation pour
+ <literal>lpt<replaceable>N</replaceable></literal>.</para>
+ </step>
+ </procedure>
+
+ <para>Vous pouvez placer ces commandes dans votre fichier
+ <filename>/etc/rc.local</filename> pour sélectionner
+ le mode &agrave; chaque démarrage du système.
+ Consultez &man.lptcontrol.8; pour obtenir plus
+ d'informations.</para>
+ </sect3>
+
+ <sect3 id="printing-testing">
+ <title>Vérifier la communication avec
+ l'imprimante</title>
+
+ <para>Avant de passer &agrave; la configuration du
+ gestionnaire d'impression, vous devriez vous assurer que le
+ système d'exploitation fait parvenir avec
+ succès des données &agrave; l'imprimante. Il
+ est beaucoup plus facile de déboguer
+ séparément la communication avec l'imprimante
+ et la configuration du gestionnaire d'impression.</para>
+
+ <para>Pour tester l'imprimante, nous allons lui envoyer du
+ texte. Pour les imprimantes qui peuvent
+ immédiatement imprimer les caractères qui leur
+ sont envoyés, le programme &man.lptest.1; est
+ parfait: il génère les 96 caractères
+ ASCII imprimables sur 96 lignes.</para>
+
+ <indexterm><primary>PostScript</primary></indexterm>
+
+ <para>Pour une imprimante &postscript; (ou basée sur un
+ autre langage), il va nous falloir un test plus
+ sophistiqué. Un petit programme &postscript;, tel
+ que celui qui suit, devrait suffire:</para>
+
+ <programlisting>%!PS
+100 100 moveto 300 300 lineto stroke
+310 310 moveto /Helvetica findfont 12 scalefont setfont
+(Is this thing working?) show
+showpage</programlisting>
+
+ <para>Le code &postscript; ci-dessus peut être
+ placé dans un fichier et utilisé comme
+ indiqué dans les exemples qui apparaissent dans les
+ sections suivantes.</para>
+
+ <note>
+ <indexterm><primary>PCL</primary></indexterm>
+
+ <para>Lorsque ce document fait référence
+ &agrave; un langage d'imprimante, il suppose un langage
+ comme &postscript;, et pas le PCL de Hewlett-Packard.
+ Quoique PCL dispose de fonctionnalités
+ intéressantes, il est possible de mélanger
+ du texte simple avec des séquences
+ d'échappement. &postscript; ne permet pas
+ d'imprimer du texte clair, c'est le type de langage
+ d'imprimante pour lequel nous devons prendre des mesures
+ particulières.</para>
+ </note>
+
+ <sect4 id="printing-checking-parallel">
+ <title>Tester une imprimante parallèle</title>
+
+ <indexterm>
+ <primary>imprimantes</primary>
+ <secondary>parallèle</secondary>
+ </indexterm>
+
+ <para>Cette section vous apprendra &agrave; vérifier
+ si &os; peut communiquer avec une imprimante
+ connectée sur un port parallèle.</para>
+
+ <para><emphasis>Pour tester une imprimante connectée
+ sur un port parallèle:</emphasis></para>
+
+ <procedure>
+ <step>
+ <para>Passez en <username>root</username> avec
+ &man.su.1;.</para>
+ </step>
+
+ <step>
+ <para>Envoyez des données &agrave;
+ l'imprimante.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Si l'imprimante peut sortir du texte simple,
+ alors utilisez &man.lptest.1;. Entrez:</para>
+
+ <screen>&prompt.root; <userinput>lptest &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
+
+ <para>Où <replaceable>N</replaceable> est le
+ numéro du port parallèle, en
+ commençant &agrave; zéro.</para>
+ </listitem>
+
+ <listitem>
+ <para>Si l'imprimante comprend le &postscript; ou un
+ autre langage d'imprimante, alors envoyez lui un
+ petit programme. Entrez:</para>
+
+ <screen>&prompt.root; <userinput>cat &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
+
+ <para>Tapez ensuite le programme, ligne &agrave;
+ ligne et <emphasis>attentivement</emphasis>, car
+ vous ne pouvez plus éditer une ligne une
+ fois que vous avez appuyé sur la touche
+ <literal>Retour Chariot</literal> ou
+ <literal>Entrée</literal>. Une fois
+ terminé, faites
+ <literal>CONTROL+D</literal>, ou la combinaison
+ correspondant &agrave; votre fin de
+ fichier.</para>
+
+ <para>Une autre manière de procéder
+ est de placer le programme dans un fichier et
+ d'entrer:</para>
+
+ <screen>&prompt.root; <userinput>cat <replaceable>fichier</replaceable> &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
+
+ <para>Où <replaceable>fichier</replaceable>
+ désigne le nom du fichier que vous
+ désirez envoyer &agrave;
+ l'imprimante.</para>
+ </listitem>
+ </itemizedlist>
+ </step>
+ </procedure>
+
+ <para>Vous devriez voir quelque chose s'imprimer. Ne vous
+ inquiétez pas si l'apparence du texte n'est pas
+ satisfaisante; nous remédierons &agrave; ce genre
+ de soucis plus tard.</para>
+ </sect4>
+
+ <sect4 id="printing-checking-serial">
+ <title>Tester une imprimante série</title>
+
+ <indexterm>
+ <primary>imprimantes</primary>
+ <secondary>série</secondary>
+ </indexterm>
+
+ <para>Dans cette section vous apprendrez &agrave;
+ vérifier si &os; parvient &agrave; communiquer avec
+ une imprimante connectée &agrave; un port
+ série.</para>
+
+ <para><emphasis>Pour tester une imprimante connectée
+ sur un port série:</emphasis></para>
+
+ <procedure>
+ <step>
+ <para>Passez en <username>root</username> avec
+ &man.su.1;.</para>
+ </step>
+
+ <step>
+ <para>Editez le fichier
+ <filename>/etc/remote</filename>. Ajoutez
+ l'entrée suivante:</para>
+
+ <programlisting>printer:dv=/dev/<replaceable>port</replaceable>:br#<replaceable>bps-rate</replaceable>:pa=<replaceable>parity</replaceable></programlisting>
+
+ <indexterm><primary>bits-par-seconde</primary></indexterm>
+ <indexterm><primary>port
+ série</primary></indexterm>
+ <indexterm><primary>parité</primary></indexterm>
+
+ <para>Où <replaceable>port</replaceable>
+ représente le fichier de
+ périphérique du port série
+ (<literal>ttyd0</literal>, <literal>ttyd1</literal>,
+ etc.), <replaceable>bps-rate</replaceable>
+ représente la vitesse en bits-par-seconde
+ &agrave; laquelle l'imprimante communique, et
+ <replaceable>parity</replaceable> représente la
+ parité réclamée par l'imprimante
+ (<literal>even</literal> pour paire,
+ <literal>odd</literal> pour impaire,
+ <literal>none</literal> pour aucune, ou
+ <literal>zero</literal> pour zéro).</para>
+
+ <para>Voici un exemple d'entrée pour une
+ imprimante connectée &agrave; 19200&nbsp;bps,
+ sans parité, sur le troisième port
+ série:</para>
+
+ <programlisting>printer:dv=/dev/ttyd2:br#19200:pa=none</programlisting>
+ </step>
+
+ <step>
+ <para>Connectez-vous &agrave; l'imprimante avec
+ &man.tip.1;. Entrez:</para>
+
+ <screen>&prompt.root; <userinput>tip printer</userinput></screen>
+
+ <para>Si cette étape ne fonctionne pas,
+ éditez le fichier
+ <filename>/etc/remote</filename> &agrave; nouveau et
+ essayez d'utiliser
+ <filename>/dev/cuaa<replaceable>N</replaceable></filename>
+ au lieu de
+ <filename>/dev/ttyd<replaceable>N</replaceable></filename>.</para>
+ </step>
+
+ <step>
+ <para>Envoyez des données &agrave;
+ l'imprimante.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Si l'imprimante peut sortir du texte simple,
+ alors utilisez &man.lptest.1;. Entrez:</para>
+
+ <screen>&prompt.user; <userinput>$lptest</userinput></screen>
+ </listitem>
+
+ <listitem>
+ <para>Si l'imprimante comprend le &postscript; ou
+ tout autre langage d'imprimante, envoyez-lui un
+ petit programme. Entrez-le ligne &agrave; ligne
+ et <emphasis>très attentivement</emphasis>,
+ dans la mesure où les touches
+ d'édition, comme retour-arrière,
+ peuvent revêtir une signification
+ particulière pour l'imprimante. Vous
+ pourriez également avoir besoin d'un
+ caractère de fin de fichier
+ (<quote>EOF</quote>) particulier pour que
+ l'imprimante sache qu'elle a reçu tout le
+ programme. Pour les imprimantes &postscript;,
+ appuyez sur <literal>CONTROL+D</literal>.</para>
+
+ <para>Une autre manière de procéder
+ est de placer le programme dans un fichier et
+ d'entrer:</para>
+
+ <screen>&prompt.user; <userinput>&gt;<replaceable>fichier</replaceable></userinput></screen>
+
+ <para>Où <replaceable>fichier</replaceable>
+ est le nom du fichier contenant le programme.
+ Après avoir envoyé le fichier avec
+ &man.tip.1;, appuyez sur la touche de fin de
+ fichier appropriée.</para>
+ </listitem>
+ </itemizedlist>
+ </step>
+ </procedure>
+
+ <para>Vous devriez voir quelque chose s'imprimer. Ne vous
+ inquiétez pas si l'apparence du texte n'est pas
+ satisfaisante; nous remédierons &agrave; ce genre
+ de soucis plus tard.</para>
+ </sect4>
+ </sect3>
+
+ <sect3 id="printing-printcap">
+ <title>Mettre en place le gestionnaire d'impression: le
+ fichier <filename>/etc/printcap</filename></title>
+
+ <para>A ce stade, votre imprimante doit être
+ branchée, votre noyau configuré pour
+ communiquer avec elle (si cela est nécessaire); et
+ vous avez réussi &agrave; faire parvenir des
+ données simples &agrave; l'imprimante. Nous sommes
+ maintenant prêts &agrave; paramétrer
+ <application>LPD</application> pour qu'il contrôle
+ l'accès &agrave; l'imprimante.</para>
+
+ <para><application>LPD</application> se paramètre en
+ éditant le fichier
+ <filename>/etc/printcap</filename>. Le gestionnaire
+ d'impression <application>LPD</application> le lit &agrave;
+ chaque fois que le gestionnaire est solicité, donc
+ les mises &agrave; jour du fichier sont immédiatement
+ prises en compte.</para>
+
+ <indexterm> <primary>imprimantes</primary>
+ <secondary>fonctionnalités</secondary> </indexterm>
+
+ <para>Le format du fichier &man.printcap.5; est explicite.
+ Utilisez votre éditeur favori pour modifier
+ <filename>/etc/printcap</filename>. Le format est identique
+ aux autres fichiers de configuration comme
+ <filename>/usr/share/misc/termcap</filename> et
+ <filename>/etc/remote</filename>. Pour obtenir des
+ informations complètes concernant ce format,
+ consultez &man.cgetent.3;.</para>
+
+ <para>Le paramétrage simple du gestionnaire
+ d'impression s'effectue selon les étapes
+ suivantes:</para>
+
+ <procedure>
+ <step>
+ <para>Choisissez un nom (et quelques alias
+ appropriés) pour l'imprimante, et placez-les dans
+ <filename>/etc/printcap</filename>; lisez la section
+ <link linkend="printing-naming">Nommer
+ l'imprimante</link> pour plus d'informations sur le
+ nommage.</para>
+ </step>
+
+ <step>
+ <indexterm><primary>pages d'en-tête</primary></indexterm>
+
+ <para>Désactivez les pages d'en-tête (elles
+ sont activées par défaut) en
+ insérant le paramètre
+ <literal>sh</literal>; lisez la section <link
+ linkend="printing-no-header-pages">Supprimer les pages
+ d'en-tête</link> pour plus d'informations.</para>
+ </step>
+
+ <step>
+ <para>Créez un répertoire de file d'attente,
+ et précisez son chemin d'accès avec le
+ paramètre <literal>sd</literal>; lisez la section
+ <link linkend="printing-spooldir">Créer le
+ répertoire de fil d'attente</link> pour obtenir
+ plus d'informations.</para>
+ </step>
+
+ <step>
+ <para>Sélectionnez l'entrée
+ <filename>dev</filename> &agrave; utiliser pour
+ l'imprimante, et notez la dans
+ <filename>/etc/printcap</filename> avec le
+ paramètre <literal>lp</literal>; lisez la section
+ <link linkend="printing-device">Identifier le
+ périphérique d'imprimante</link> pour
+ obtenir plus d'informations. De plus, si l'imprimante
+ est reliée par un port série,
+ précisez les paramètres de communication
+ avec le paramètre <literal>ms#</literal>, qui est
+ détaillé dans la section <link
+ linkend="printing-commparam">Configurer les
+ paramètres de communication du gestionnaire
+ d'impression</link>.</para>
+ </step>
+
+ <step>
+ <para>Installez un filtre d'entrée sous forme de
+ fichier texte simple; lisez la section <link
+ linkend="printing-textfilter">Installer le filtre
+ texte</link> pour obtenir plus de détails.</para>
+ </step>
+
+ <step>
+ <para>Testez la configuration en imprimant quelque chose
+ avec la commande &man.lpr.1;. Vous trouverez plus de
+ détails dans les sections <link
+ linkend="printing-trying">Tester l'impression</link> et
+ <link
+ linkend="printing-troubleshooting">Résolution des
+ problèmes</link>.</para>
+ </step>
+ </procedure>
+
+ <note>
+ <para>Les imprimantes basées sur un langage d'impression,
+ telles les imprimantes &postscript;, ne peuvent imprimer
+ du texte simple directement. La configuration simple
+ esquissée ci-dessus et détaillée dans
+ les sections suivantes présuppose que si vous
+ installez ce genre d'imprimante vous n'imprimerez que des
+ fichiers qu'elle peut comprendre.</para>
+ </note>
+
+ <para>Les utilisateurs s'attendent souvent &agrave; pouvoir
+ imprimer du texte simple sur n'importe laquelle des
+ imprimante installées sur votre système. Les
+ applications qui s'en remettent &agrave;
+ <application>LPD</application> pour imprimer s'y attendent
+ en général elles aussi. Si vous installez ce
+ genre d'imprimante et désirez pouvoir imprimer
+ &agrave; la fois des travaux dans le langage de l'imprimante
+ <emphasis>et</emphasis> des travaux en texte simple, vous
+ êtes instamment prié d'ajouter une étape
+ supplémentaire &agrave; la configuration simple
+ esquissée ci-dessus: installez un programme de
+ conversion automatique texte simple vers &postscript; (ou
+ tout autre langage d'imprimante). La section <link
+ linkend="printing-advanced-if-conversion">Prendre en charge
+ des travaux texte sur des imprimantes &postscript;</link>
+ vous apprendra &agrave; le faire.</para>
+
+ <sect4 id="printing-naming">
+ <title>Nommer l'imprimante</title>
+
+ <para>La première étape (facile) est de
+ choisir un nom pour l'imprimante. Que vous choisissiez un
+ nom fonctionnel ou fantaisiste n'a aucune importance
+ puisque vous pouvez également fournir une
+ série d'alias.</para>
+
+ <para>Au moins l'une des imprimantes définies dans le
+ fichier <filename>/etc/printcap</filename> devrait avoir
+ pour alias <literal>lp</literal>. C'est le nom de
+ l'imprimante par défaut. Si les utilisateurs n'ont
+ pas positionné la variable d'environnement
+ <envar>PRINTER</envar> et ne spécifient pas le nom
+ d'une imprimante lorsqu'ils utilisent une ligne de
+ commande relative &agrave; <application>LPD</application>,
+ <literal>lp</literal> sera l'imprimante par défaut
+ utilisée.</para>
+
+ <para>Par ailleurs, l'usage commun veut que le dernier alias
+ d'une imprimante en soit une description complète,
+ en incluant le fabricant et le modèle.</para>
+
+ <para>Une fois le nom et des alias communs choisis,
+ placez-les dans le fichier
+ <filename>/etc/printcap</filename>. Le nom de
+ l'imprimante devrait commencer dans la colonne la plus
+ &agrave; gauche. Séparez chaque alias par une
+ barre verticale et mettez le caractère deux-points
+ après le dernier alias.</para>
+
+ <para>Dans l'exemple suivant, nous commençons avec le
+ squelette d'un <filename>/etc/printcap</filename> qui
+ définit deux imprimantes (une Diablo 630 et une
+ imprimante &postscript; laser Panasonic KX-P4455):</para>
+
+ <programlisting>#
+# /etc/printcap for host rose
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:</programlisting>
+
+ <para>Dans cet exemple, la première imprimante se
+ nomme <literal>rattan</literal> et possède les
+ alias suivants: <literal>line</literal>,
+ <literal>diablo</literal>, <literal>lp</literal> et
+ <literal>Diablo 630 Line Printer</literal>. Puisque
+ l'alias <literal>lp</literal> lui est attribué,
+ elle est également l'imprimante par défaut.
+ La seconde s'appelle <literal>bamboo</literal> et
+ possède les alias suivants: <literal>ps</literal>,
+ <literal>PS</literal>, <literal>S</literal>,
+ <literal>panasonic</literal> et <literal>Panasonic
+ KX-P4455 PostScript v51.4</literal>.</para>
+ </sect4>
+
+ <sect4 id="printing-no-header-pages">
+ <title>Supprimer les pages d'en-tête</title>
+
+ <indexterm>
+ <primary>imprimer</primary>
+ <secondary>pages d'en-tête</secondary>
+ </indexterm>
+
+ <para>Par défaut, le gestionnaire d'impression
+ <application>LPD</application> imprime une <emphasis>page
+ d'en-tête</emphasis> pour chaque impression.
+ Celle-ci mentionne le nom de l'utilisateur qui a
+ demandé l'impression, la machine qui l'a
+ envoyé, et le nom de l'impression, en grands et
+ jolis caractères. Malheureusement, tout ce texte
+ supplémentaire parasite le débogage d'une
+ configuration simple de l'imprimante, aussi
+ supprimerons-nous ces pages d'en-têtes.</para>
+
+ <para>Pour cela, ajoutez le paramètre
+ <literal>sh</literal> &agrave; l'entrée de
+ l'imprimante dans <filename>/etc/printcap</filename>.
+ Voici un exemple de <filename>/etc/printcap</filename>
+ où <literal>sh</literal> a été
+ ajouté:</para>
+
+ <programlisting>#
+# /etc/printcap for host rose - no header pages anywhere
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:</programlisting>
+
+ <para>Observez la façon dont nous avons
+ respecté le format correct: la première
+ ligne commence dans la colonne la plus &agrave; gauche, et
+ les lignes suivantes sont indentées. Toutes les
+ lignes d'une entrée sauf la dernière se
+ terminent par un antislash.</para>
+ </sect4>
+
+ <sect4 id="printing-spooldir">
+ <title>Créer le répertoire de file
+ d'attente</title>
+
+ <indexterm><primary>file d'attente
+ d'imprimante</primary></indexterm>
+ <indexterm><primary>travaux
+ d'impression</primary></indexterm>
+
+ <para>La prochaine étape dans la configuration simple
+ du gestionnaire d'impression consiste &agrave;
+ créer un <emphasis>répertoire de file
+ d'attente</emphasis>, c'est &agrave; dire un
+ répertoire où les travaux vont demeurer
+ jusqu'&agrave; ce qu'ils soient imprimés, et
+ où un certain nombre d'autres fichiers
+ nécessaires au gestionnaire d'impression prennent
+ place.</para>
+
+ <para>A cause de la nature variable des répertoires
+ de file d'attente, il est d'usage de les placer dans
+ <filename>/var/spool</filename>. Il n'est pas non plus
+ nécessaire de sauvegarder leur contenu. Les
+ recréer est aussi simple que de faire un
+ &man.mkdir.1;.</para>
+
+ <para>Il est également d'usage de créer le
+ répertoire avec un nom identique &agrave; celui de
+ l'imprimante, comme dans l'exemple ci-dessous:</para>
+
+ <screen>&prompt.root; <userinput>mkdir /var/spool/<replaceable>nom-de-l-imprimante</replaceable></userinput></screen>
+
+ <para>Toutefois, si votre réseau comporte beaucoup
+ d'imprimantes, vous pouvez préférer placer
+ les répertoires de file d'attente dans un unique
+ répertoire que vous réserverez &agrave;
+ l'impression avec <application>LPD</application>. C'est
+ ce que nous allons faire pour les deux imprimantes de
+ notre exemple, <literal>rattan</literal> et
+ <literal>bamboo</literal>:</para>
+
+ <screen>&prompt.root; <userinput>mkdir /var/spool/lpd</userinput>
+&prompt.root; <userinput>mkdir /var/spool/lpd/rattan</userinput>
+&prompt.root; <userinput>mkdir /var/spool/lpd/bamboo</userinput></screen>
+
+ <note>
+ <para>Si la confidentialité des travaux
+ imprimés par les utilisateurs vous importe, vous
+ souhaiterez certainement protéger le
+ répertoire de file d'attente afin qu'il ne soit
+ pas accessible par tout le monde. Les
+ répertoires de file d'attente doivent appartenir,
+ être accessibles en lecture et écriture et
+ pouvoir être parcourus par l'utilisateur
+ <username>daemon</username> et le groupe
+ <groupname>daemon</groupname>, et personne d'autre.
+ C'est ce que nous allons faire pour les deux imprimantes
+ de notre exemple:</para>
+
+ <screen>&prompt.root; <userinput>chown daemon:daemon /var/spool/lpd/rattan</userinput>
+&prompt.root; <userinput>chown daemon:daemon /var/spool/lpd/bamboo</userinput>
+&prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan</userinput>
+&prompt.root; <userinput>chmod 770 /var/spool/lpd/bamboo</userinput></screen>
+ </note>
+
+ <para>Pour finir, vous devez avertir
+ <application>LPD</application> de l'existence de ces
+ répertoires en utilisant le fichier
+ <filename>/etc/printcap</filename>. Vous spécifiez
+ le chemin du répertoire file d'attente avec le
+ paramètre <literal>sd</literal>:</para>
+
+ <programlisting>#
+# /etc/printcap for host rose - added spooling directories
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:sd=/var/spool/lpd/rattan:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=/var/spool/lpd/bamboo:</programlisting>
+
+ <para>Notez que le nom de l'imprimante commence dans la
+ première colonne mais que toutes les autres
+ entrées décrivant l'imprimante doivent
+ être indentées et que chaque fin de ligne
+ doit être protégée par un
+ antislash.</para>
+
+ <para>Si vous ne précisez pas de répertoire de
+ file d'attente avec <literal>sd</literal>, le gestionnaire
+ d'impression utilisera <filename>/var/spool/lpd</filename>
+ par défaut.</para>
+ </sect4>
+
+ <sect4 id="printing-device">
+ <title>Identifier le périphérique
+ d'imprimante</title>
+
+ <para>Dans la section Entrées des
+ périphériques nous avons identifié
+ l'entrée du répertoire
+ <filename>/dev</filename> que &os; utiliserait pour
+ communiquer avec l'imprimante. Maintenant, nous allons
+ passer cette information &agrave;
+ <application>LPD</application>. Quand le gestionnaire
+ d'impression aura une impression &agrave; effectuer, il
+ ouvrira le périphérique
+ spécifié au nom du programme de filtre (qui
+ est responsable de la transmission des données
+ &agrave; l'imprimante).</para>
+
+ <para>Positionnez l'entrée pour le chemin
+ d'accès <filename>/dev</filename> dans le fichier
+ <filename>/etc/printcap</filename> en utilisant le
+ paramètre <literal>lp</literal>.</para>
+
+ <para>Dans notre exemple, supposons que
+ <literal>rattan</literal> est sur le premier port
+ parallèle, et que <literal>bamboo</literal> est sur
+ un sixième port série; voici les ajouts
+ &agrave; apporter &agrave;
+ <filename>/etc/printcap</filename>:</para>
+
+ <programlisting>#
+# /etc/printcap for host rose - identified what devices to use
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:sd=/var/spool/lpd/rattan:\
+ :lp=/dev/lpt0:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=/var/spool/lpd/bamboo:\
+ :lp=/dev/ttyd5:</programlisting>
+
+ <para>Si dans votre <filename>/etc/printcap</filename> vous
+ ne précisez pas le paramètre
+ <literal>lp</literal> pour une imprimante,
+ <application>LPD</application> utilisera
+ <filename>/dev/lp</filename> par défaut. A l'heure
+ actuelle, il n'existe pas d'entrée
+ <filename>/dev/lp</filename> sous &os;.</para>
+
+ <para>Si l'imprimante que vous êtes en train
+ d'installer est connectée &agrave; un port
+ parallèle, vous pouvez directement vous rendre
+ &agrave; la section <link
+ linkend="printing-textfilter">Installer le filtre
+ texte</link>. Sinon, assurez-vous de suivre les
+ instructions de la section qui suit.</para>
+ </sect4>
+
+ <sect4 id="printing-commparam">
+ <title>Configurer les paramètres de communication du
+ gestionnaire d'impression</title>
+
+ <indexterm>
+ <primary>imprimantes</primary>
+ <secondary>série</secondary>
+ </indexterm>
+
+ <para>Pour les imprimantes connectées au port
+ série, <application>LPD</application> peut
+ configurer la vitesse en bps, la parité, et
+ d'autres paramètres de communication série,
+ pour le compte du programme de filtre qui envoie les
+ données &agrave; l'imprimante. C'est avantageux
+ dans la mesure où:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Cela vous laisse essayer divers paramètres
+ simplement en éditant le fichier
+ <filename>/etc/printcap</filename>; vous n'avez pas
+ besoin de recompiler le programme de filtre.</para>
+ </listitem>
+
+ <listitem>
+ <para>Cela permet au gestionnaire d'impression
+ d'utiliser le même programme pour de multiples
+ imprimantes qui peuvent avoir des paramètres de
+ communication série différents.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Les paramètres
+ <filename>/etc/printcap</filename> suivants
+ contrôlent les options de communication série
+ pour le périphérique spécifié
+ dans le paramètre <literal>lp</literal>:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>br#<replaceable>vitesse-bps</replaceable></literal></term>
+
+ <listitem>
+ <para>Positionne la vitesse de transmission du
+ périphérique &agrave;
+ <replaceable>vitesse-bps</replaceable>, où
+ <replaceable>vitesse-bps</replaceable> peut prendre
+ l'une des valeurs suivantes: 50, 75, 110, 134, 150,
+ 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200,
+ 38400, 57600, ou 115200 bits par seconde.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ms#<replaceable>stty-mode</replaceable></literal></term>
+
+ <listitem>
+ <para>Positionne les options du
+ périphérique de terminal après
+ l'avoir ouvert. &man.stty.1; présente les
+ options disponibles.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Quand <application>LPD</application> ouvre le
+ périphérique spécifié par le
+ paramètre <literal>lp</literal>, il positionne les
+ caractéristiques de ce périphérique
+ aux valeurs précisées par le
+ paramètre <literal>ms#</literal>. Les modes
+ suivants, détaillés dans &man.stty.1; sont
+ particulièrement intéressants:
+ <literal>parenb</literal>, <literal>parodd</literal>,
+ <literal>cs5</literal>, <literal>cs6</literal>,
+ <literal>cs7</literal>, <literal>cs8</literal>,
+ <literal>cstopb</literal>, <literal>crtscts</literal>, et
+ <literal>ixon</literal>.</para>
+
+ <para>Peaufinons notre exemple pour l'imprimante qui est
+ connectée au sixième port série. Nous
+ allons paramétrer sa vitesse &agrave; 38400 bps.
+ Quant au mode, nous allons spécifier aucune
+ parité avec <literal>-parenb</literal>, des
+ caractères 8 bits avec <literal>cs8</literal>,
+ aucun contrôle modem avec <literal>clocal</literal>
+ et un contrôle de flux matériel avec
+ <literal>crtscts</literal>:</para>
+
+ <programlisting>bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=/var/spool/lpd/bamboo:\
+ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:</programlisting>
+ </sect4>
+
+ <sect4 id="printing-textfilter">
+ <title>Installer le filtre texte</title>
+
+ <indexterm>
+ <primary>imprimer</primary>
+ <secondary>filtres</secondary>
+ </indexterm>
+
+ <para>Nous sommes maintenant en mesure de dire &agrave;
+ <application>LPD</application> quel filtre texte utiliser
+ pour envoyer les travaux &agrave; l'imprimante. Un
+ <emphasis>filtre texte</emphasis>, également connu
+ sous le nom de <emphasis>filtre
+ d'entrée</emphasis>, est un programme que
+ <application>LPD</application> lance lorsqu'il a une
+ impression &agrave; effectuer. Lorsque
+ <application>LPD</application> exécute le filtre
+ texte pour une imprimante, il redirige l'entrée
+ standard du filtre sur le travail d'impression, et la
+ sortie standard sur le fichier spécial de
+ périphérique spécifié par le
+ paramètre <literal>lp</literal>. On attend du
+ filtre qu'il lise le travail d'impression sur son
+ entrée standard, effectue les transformations
+ nécessaires pour l'imprimante, et écrive le
+ résultat sur sa sortie standard, qui sera
+ imprimée. Pour plus d'informations sur les filtres
+ texte, lisez la section <link
+ linkend="printing-advanced-filters">Filtres</link>.</para>
+
+ <para>Pour notre configuration simple de l'imprimante, le
+ filtre texte peut être une petite procédure
+ d'interpréteur de commandes qui ne fera
+ qu'exécuter <command>/bin/cat</command> pour
+ envoyer le travail d'impression &agrave; l'imprimante. Un
+ autre filtre est livré avec &os;, nommé
+ <filename>lpf</filename>, qui se charge de faire des
+ suppressions arrière et des soulignements pour les
+ imprimantes qui ne sauraient pas gérer correctement
+ ce genre de flux de caractères. Et bien sûr,
+ vous pouvez utiliser un autre filtre, quel qu'il soit. Le
+ filtre <filename>lpf</filename> est détaillé
+ dans la section <link
+ linkend="printing-advanced-lpf">lpf: un filtre
+ texte</link>.</para>
+
+ <para>Tout d'abord, composons le filtre
+ <filename>/usr/local/libexec/if-simple</filename> qui sera
+ un simple filtre texte. Ecrivez ceci avec votre
+ éditeur de texte favori:</para>
+
+ <programlisting>#!/bin/sh
+#
+# if-simple - Simple text input filter for lpd
+# Installed in /usr/local/libexec/if-simple
+#
+# Simply copies stdin to stdout. Ignores all filter arguments.
+
+/bin/cat &amp;&amp; exit 0
+exit 2</programlisting>
+
+ <para>Rendez le fichier exécutable:</para>
+
+ <screen>&prompt.root; <userinput>chmod 555 /usr/local/libexec/if-simple</userinput></screen>
+
+ <para>Et avertissez <application>LPD</application> qu'il
+ doit l'utiliser, en renseignant le paramètre
+ <literal>if</literal> dans
+ <filename>/etc/printcap</filename>. Nous l'ajouterons aux
+ deux imprimantes utilisées jusqu'ici dans notre
+ <filename>/etc/printcap</filename> d'exemple:</para>
+
+ <programlisting>#
+# /etc/printcap for host rose - added text filter
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\
+ :if=/usr/local/libexec/if-simple:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=/var/spool/lpd/bamboo:\
+ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:\
+ :if=/usr/local/libexec/if-simple:</programlisting>
+
+ <note>
+ <para>Vous trouverez une copie du filtre
+ <filename>if-simple</filename> dans le répertoire
+ <filename
+ class="directory">/usr/share/examples/printing</filename>.</para>
+ </note>
+ </sect4>
+
+ <sect4>
+ <title>Lancer <application>LPD</application></title>
+
+ <para>&man.lpd.8; se lance depuis
+ <filename>/etc/rc</filename>, avec la variable de
+ contrôle <literal>lpd_enable</literal>. Cette
+ variable a <literal>NO</literal> pour valeur par
+ défaut. Si vous ne l'avez pas déj&agrave;
+ fait, ajoutez la ligne:</para>
+
+ <programlisting>lpd_enable="YES"</programlisting>
+
+ <para>&agrave; votre <filename>/etc/rc.conf</filename>, puis
+ relancez votre machine, ou lancez simplement
+ &man.lpd.8;.</para>
+
+ <screen>&prompt.root; <userinput>lpd</userinput></screen>
+ </sect4>
+
+ <sect4 id="printing-trying">
+ <title>Tester la configuration</title>
+
+ <para>Vous avez achevé la configuration simple de
+ <application>LPD</application>. Malheureusement, les
+ félicitations ne sont pas encore &agrave; l'ordre
+ du jour, puisque nous devons encore tester la
+ configuration et résoudre tout problème.
+ Pour tester la configuration, essayez d'imprimer quelque
+ chose. Pour imprimer avec le système
+ <application>LPD</application>, vous devez utiliser la
+ commande &man.lpr.1;, qui soumet un travail
+ d'impression.</para>
+
+ <para>Vous pouvez combiner &man.lpr.1; au programme
+ &man.lptest.1;, que nous avons présenté
+ &agrave; la section <link
+ linkend="printing-testing">Vérifier la
+ communication avec l'imprimante</link>, pour produire du
+ texte de test.</para>
+
+ <para><emphasis>Pour tester la configuration simple de
+ <application>LPD</application></emphasis></para>
+
+ <para>Entrez:</para>
+
+ <screen>&prompt.root; <userinput>lptest 20 5 | lpr -P<replaceable>nom-de-l-imprimante</replaceable></userinput></screen>
+
+ <para>Où
+ <replaceable>nom-de-l-imprimante</replaceable>
+ représente le nom (ou l'alias) d'une imprimante tel
+ que spécifié dans
+ <filename>/etc/printcap</filename>. Pour tester
+ l'imprimante par défaut, tapez &man.lpr.1; sans
+ aucun argument <option>-P</option>. Encore une fois, si
+ vous faites ce test avec une imprimante qui s'attend
+ &agrave; recevoir du &postscript;, envoyez un programme
+ &postscript; au lieu d'employer &man.lptest.1;. Vous
+ pouvez le faire en plaçant le programme dans un
+ fichier et en entrant <command>lpr
+ <replaceable>fichier</replaceable></command>.</para>
+
+ <para>Pour une imprimante &postscript;, vous devriez obtenir
+ le résultat du programme. Si vous utilisez
+ &man.lptest.1;, alors votre sortie devrait ressembler
+ &agrave; ça:</para>
+
+ <programlisting>!"#$%&amp;'()*+,-./01234
+"#$%&amp;'()*+,-./012345
+#$%&amp;'()*+,-./0123456
+$%&amp;'()*+,-./01234567
+%&amp;'()*+,-./012345678</programlisting>
+
+ <para>Pour tester l'imprimante plus encore,
+ téléchargez des programmes (pour les
+ imprimantes basées sur un langage
+ spécifique) plus longs, ou lancez &man.lptest.1;
+ avec des arguments différents. Par exemple,
+ <command>lptest 80 60</command> produira 60 lignes de 80
+ caractères chacune.</para>
+
+ <para>Si l'impression ne fonctionne pas, lisez la section
+ <link linkend="printing-troubleshooting">Résolution
+ des problèmes</link>.</para>
+ </sect4>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="printing-advanced">
+ <title>Configuration avancée de l'imprimante</title>
+
+ <para>Cette section décrit les filtres &agrave; utiliser
+ pour imprimer des fichiers au formatage particulier, des pages
+ d'en-tête, pour imprimer en réseau, et pour
+ restreindre et comptabiliser l'utilisation de
+ l'imprimante.</para>
+
+ <sect2 id="printing-advanced-filter-intro">
+ <title>Les filtres</title>
+
+ <indexterm>
+ <primary>imprimer</primary>
+ <secondary>filtres</secondary>
+ </indexterm>
+
+ <para>Bien que <application>LPD</application> gère les
+ protocoles réseaux, les files d'attente, le
+ contrôle d'accès et d'autres aspects de
+ l'impression, la plus grande partie du
+ <emphasis>véritable</emphasis> travail intervient dans
+ les <emphasis>filtres</emphasis>. Les filtres sont des
+ programmes qui communiquent avec l'imprimante et gèrent
+ ses dépendances matérielles ainsi que ses
+ besoins particuliers. Dans la configuration simple de
+ l'imprimante, nous avons installé un filtre texte
+ simple&mdash; un filtre particulièrement basique qui
+ devrait fonctionner avec la plupart des imprimantes (voir la
+ section <link linkend="printing-textfilter">Installer le
+ filtre texte</link>).</para>
+
+ <para>Toutefois, afin de profiter de la conversion de format, de
+ la comptabilisation de l'utilisation de l'imprimante, de
+ particularités matérielles, et ainsi de suite,
+ il vous faut comprendre le fonctionnement des filtres. En
+ dernier ressort, il incombera au filtre de gérer ces
+ aspects. Et la mauvaise nouvelle, c'est que la plupart du
+ temps, c'est <emphasis>vous</emphasis> qui devrez produire ces
+ filtres vous-même. La bonne nouvelle, c'est que
+ beaucoup existent déj&agrave; et que, sinon, ils sont
+ en général assez faciles &agrave;
+ écrire.</para>
+
+ <para>Par ailleurs, il en est un livré avec &os;,
+ <filename>/usr/libexec/lpr/lpf</filename>, qui fonctionne avec
+ beaucoup d'imprimantes capables d'imprimer du texte brut. (Il
+ gère les retours arrière et les tabulations dans
+ le fichier, effectue une comptabilisation, mais c'est &agrave;
+ peu près tout). Vous trouverez également
+ d'autres filtres et composants de filtres dans le catalogue
+ des logiciels portés de &os;.</para>
+
+ <para>Voici ce que vous trouverez dans cette section:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>La section
+ <link linkend="printing-advanced-filters">Fonctionnement
+ des filtres</link> tâche de donner une vue
+ générale du rôle des filtres dans le
+ processus d'impression. Il vous faut lire cette section
+ pour comprendre ce qui se passe <quote>sous le
+ capot</quote> lorsque <application>LPD</application>
+ utilise des filtres. Cette connaissance vous permettra
+ d'anticiper et de résoudre les problèmes que
+ vous pourriez rencontrer quand vous installerez de plus en
+ plus de filtres pour chacune de vos imprimantes.</para>
+ </listitem>
+
+ <listitem>
+ <para><application>LPD</application> s'attend &agrave; ce
+ que toutes les imprimantes sachent imprimer du texte brut
+ par défaut. Cela pose un problème pour les
+ imprimantes &postscript; (ou les imprimantes basées
+ sur un autre langage) qui ne peut pas imprimer du texte
+ brut directement. La section <link
+ linkend="printing-advanced-if-conversion">Gérer les
+ travaux d'impression de texte brut sur des imprimantes
+ &postscript;</link> vous indique la marche &agrave; suivre
+ pour résoudre ce problème. Vous devrez lire
+ cette section si vous avez une imprimante
+ &postscript;.</para>
+ </listitem>
+
+ <listitem>
+ <para>&postscript; est un format de sortie courant pour
+ beaucoup d'applications. Certaines personnes
+ écrivent même du code &postscript;
+ directement. Malheureusement, les imprimantes
+ &postscript; sont onéreuses. La section <link
+ linkend="printing-advanced-ps">Emuler du &postscript; sur
+ les imprimantes non-&postscript;</link> vous indiquera
+ comment modifier un filtre texte pour qu'une imprimante
+ <emphasis>non-&postscript;</emphasis> accepte et imprime
+ du &postscript;. Vous devrez lire cette section si vous
+ ne disposez pas d'une imprimante &postscript;.</para>
+ </listitem>
+
+ <listitem>
+ <para>La section
+ <link linkend="printing-advanced-convfilters">Filtres de
+ conversion</link> vous apprendra &agrave; automatiser la
+ conversion de formats de fichiers spécifiques,
+ comme des graphiques ou des données de composition,
+ en formats compréhensibles par l'imprimante.
+ Après avoir lu cette section, vous serez en mesure
+ de configurer vos imprimantes de telle sorte que vos
+ utilisateurs pourront entrer la commande <command>lpr
+ -t</command> pour imprimer du troff, ou <command>lpr
+ -d</command> pour imprimer le format DVI produit par
+ &tex;, ou <command>lpr -v</command> pour imprimer des
+ images en mode point, etc. Nous recommandons la lecture
+ de cette section.</para>
+ </listitem>
+
+ <listitem>
+ <para>La section <link
+ linkend="printing-advanced-of">Filtres de sortie</link>
+ révèle tout d'une fonctionnalité peu
+ utilisée de <application>LPD</application>: les
+ filtres de sortie. A moins que vous n'imprimiez des pages
+ d'en-têtes (voir la section <link
+ linkend="printing-advanced-header-pages">Pages
+ d'en-tête</link>), vous pouvez probablement
+ complètement ignorer cette section.</para>
+ </listitem>
+
+ <listitem>
+ <para>La section <link linkend="printing-advanced-lpf">lpf:
+ un filtre texte</link> détaille
+ <command>lpf</command>, un filtre texte destiné aux
+ imprimantes en ligne (et aux imprimantes laser se
+ comportant comme telles) plutôt complet
+ malgré sa simplicité, et livré avec
+ &os;. Si vous avez besoin de mettre rapidement en place
+ la comptabilisation de l'utilisation de l'imprimante pour
+ du texte brut, ou si vous avez une imprimante qui fume
+ lorsqu'elle voit passer des caractères de retour
+ arrière, vous devez vraiment penser &agrave;
+ <command>lpf</command>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>Une copie des différents scripts
+ présentés ci-dessous se trouve dans le
+ répertoire <filename
+ class="directory">/usr/share/examples/printing</filename>.
+ </para>
+ </note>
+
+ <sect3 id="printing-advanced-filters">
+ <title>Fonctionnement des filtres</title>
+
+ <para>Comme expliqué précédemment, un
+ filtre est un programme exécutable lancé par
+ <application>LPD</application> pour gérer la partie
+ de la communication avec l'imprimante qui est
+ dépendante du périphérique.</para>
+
+ <para>Lorsque <application>LPD</application> veut imprimer un
+ fichier d'un travail d'impression, il lance un programme de
+ filtre. Il redirige l'entrée standard du filtre sur
+ le fichier &agrave; imprimer, sa sortie standard vers
+ l'imprimante, et l'erreur standard vers le fichier journal
+ des erreurs (spécifié dans le paramètre
+ <literal>lf</literal> du fichier
+ <filename>/etc/printcap</filename>, ou
+ <filename>/dev/console</filename> par défaut).</para>
+
+ <indexterm>
+ <primary><command>troff</command></primary>
+ </indexterm>
+
+ <para>Le filtre lancé par
+ <application>LPD</application> ainsi que les
+ paramètres qui lui sont donnés
+ dépendent de ce qui est placé dans le fichier
+ <filename>/etc/printcap</filename> et des paramètres
+ que l'utilisateur a passé sur la ligne de commande
+ &man.lpr.1; pour ce travail d'impression. Par exemple, si
+ l'utilisateur a entré <command>lpr -t</command>,
+ <application>LPD</application> aurait lancé le filtre
+ troff, précisé par la paramètre
+ <literal>tf</literal> pour l'imprimante de destination. Si
+ l'utilisateur veut imprimer du texte brut, il lancerait le
+ filtre <literal>if</literal> (c'est vrai la plupart du
+ temps: lisez la section <link
+ linkend="printing-advanced-of">Filtres de sortie</link> pour
+ plus de détails).</para>
+
+ <para>Il existe trois types de filtres que vous pouvez
+ spécifier dans
+ <filename>/etc/printcap</filename>:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Le <emphasis>filtre texte</emphasis>,
+ confusément appelé <emphasis>filtre
+ d'entrée</emphasis> dans la documentation
+ <application>LPD</application>, gère l'impression
+ de texte classique. Considérez-le comme le
+ filtre par défaut.
+ <application>LPD</application> s'attend &agrave; ce que
+ toutes les imprimantes sachent imprimer du texte brut
+ par défaut, et c'est au filtre texte de s'assurer
+ que les retours arrière, tabulations et autres
+ caractères spéciaux ne trompent pas
+ l'imprimante. Si vous êtes dans un environnement
+ où il vous faut rendre compte de l'utilisation de
+ l'imprimante, le filtre texte doit également
+ comptabiliser les pages imprimées,
+ généralement en comptant le nombre de
+ lignes imprimées et en le comparant avec le
+ nombre de lignes par page supporté par
+ l'imprimante. Le filtre texte est exécuté
+ avec la liste de paramètres suivante:</para>
+
+ <cmdsynopsis>
+ <command>nom_du_filtre</command>
+ <arg>-c</arg>
+ <arg choice="plain">-w
+ <replaceable>largeur</replaceable></arg>
+ <arg choice="plain">-l
+ <replaceable>hauteur</replaceable></arg>
+ <arg choice="plain">-i
+ <replaceable>indentation</replaceable></arg>
+ <arg choice="plain">-n
+ <replaceable>utilisateur</replaceable></arg>
+ <arg choice="plain">-h
+ <replaceable>machine</replaceable></arg>
+ <arg
+ choice="plain"><replaceable>fichier_comptabilité</replaceable></arg>
+ </cmdsynopsis>
+
+ <para>où</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-c</option></term>
+
+ <listitem>
+ <para>apparaît si le travail d'impression est
+ lancé par la commande <command>lpr
+ -l</command></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>largeur</replaceable></term>
+
+ <listitem>
+ <para>est la valeur du paramètre
+ <literal>pw</literal> (<quote>page width</quote>,
+ pour <quote>largeur de page</quote>)
+ spécifié dans
+ <filename>/etc/printcap</filename>, et
+ possédant la valeur par défaut
+ 132.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>hauteur</replaceable></term>
+
+ <listitem>
+ <para>est la valeur du paramètre
+ <literal>pl</literal> (<quote>page length</quote>,
+ pour <quote>hauteur de page</quote>), par
+ défaut: 66.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>indentation</replaceable></term>
+
+ <listitem>
+ <para>est le nombre d'indentations
+ inséré par <command>lpr
+ -i</command>, par défaut: 0.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>utilisateur</replaceable></term>
+
+ <listitem>
+ <para>est le nom du compte de l'utilisateur
+ imprimant le fichier.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>machine</replaceable></term>
+
+ <listitem>
+ <para>est le nom de la machine depuis
+ laquelle le travail d'impression a
+ été soumis.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>fichier_comptabilité</replaceable></term>
+
+ <listitem>
+ <para>est le nom du fichier de comptabilisation
+ spécifié par le paramètre
+ <literal>af</literal>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+
+ <listitem>
+ <indexterm>
+ <primary>imprimer</primary>
+ <secondary>filtres</secondary>
+ </indexterm>
+
+ <para>Un <emphasis>filtre de conversion</emphasis>
+ convertit un format de fichier spécifique en un
+ autre que l'imprimante saura imprimer sur papier. Par
+ exemple, des données de composition ditroff ne
+ peuvent être imprimées directement, mais il
+ vous est possible d'installer un filtre de conversion
+ ditroff afin de convertir ces données ditroff en
+ une forme que l'imprimante sait ingérer et
+ imprimer. La section <link
+ linkend="printing-advanced-convfilters">Filtres de
+ conversion</link> vous dira tout sur ce sujet. Les
+ filtres de conversion doivent également tenir des
+ statistiques, si vous avez besoin de comptabiliser les
+ impressions. Les filtres de conversion sont
+ lancés avec les paramètres
+ suivants:</para>
+
+ <cmdsynopsis>
+ <command>nom-du-filtre</command>
+ <arg choice="plain">-x
+ <replaceable>largeur-en-pixels</replaceable></arg>
+ <arg choice="plain">-y
+ <replaceable>hauteur-en-pixels</replaceable></arg>
+ <arg choice="plain">-n
+ <replaceable>login</replaceable></arg>
+ <arg choice="plain">-h
+ <replaceable>hôte</replaceable></arg>
+ <arg
+ choice="plain"><replaceable>fichier_comptabilité</replaceable></arg>
+ </cmdsynopsis>
+
+ <para>où
+ <replaceable>largeur-en-pixels</replaceable> est la
+ valeur du paramètre <literal>px</literal> (0 par
+ défaut) et
+ <replaceable>hauteur-en-pixels</replaceable> est la
+ valeur du paramètre <literal>py</literal> (0 par
+ défaut).</para>
+ </listitem>
+
+ <listitem>
+ <para>Le <emphasis>filtre de sortie</emphasis> n'est
+ utilisé que s'il n'y a pas de filtre texte, ou si
+ les pages d'en-tête ont été
+ activées. D'après notre
+ expérience, les filtres de sortie sont rarement
+ employés. La section <link
+ linkend="printing-advanced-of">Filtres de sortie</link>
+ les détaillera. Un filtre de sortie ne prend que
+ deux paramètres:</para>
+
+ <cmdsynopsis>
+ <command>nom-du-filtre</command>
+ <arg choice="plain">-w
+ <replaceable>largeur</replaceable></arg>
+ <arg choice="plain">-l
+ <replaceable>hauteur</replaceable></arg>
+ </cmdsynopsis>
+
+ <para>qui sont identiques aux paramètres
+ <option>-w</option> et <option>-l</option> des filtres
+ textes.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Les filtres doivent également
+ <emphasis>retourner</emphasis> avec le code de retour
+ suivant:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>exit 0</term>
+
+ <listitem>
+ <para>Si le filtre a imprimé avec succès
+ le fichier.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>exit 1</term>
+
+ <listitem>
+ <para>Si le filtre n'a pu imprimer le fichier, mais
+ désire que <application>LPD</application>
+ essaie de l'imprimer &agrave; nouveau.
+ <application>LPD</application> relancera un filtre
+ s'il retourne avec ce code.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>exit 2</term>
+
+ <listitem>
+ <para>Si le filtre n'a pu imprimer le fichier et ne veut
+ pas que <application>LPD</application> retente
+ l'impression. <application>LPD</application>
+ rejettera le fichier.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Le filtre texte livré avec &os;,
+ <filename>/usr/libexec/lpr/lpf</filename>, tire parti des
+ paramètres de largeur et hauteur de page pour savoir
+ quand envoyer une instruction de saut de page et comment
+ comptabiliser l'utilisation de l'imprimante. Il utilise les
+ paramètres nom d'utilisateur, nom de machine, et
+ fichier de comptabilisation pour enregistrer les
+ entrées concernant la consommation.</para>
+
+ <para>Si vous recherchez des filtres, prenez garde &agrave; ce
+ qu'ils soient compatibles avec LPD. Si c'est le cas, ils
+ doivent se conformer &agrave; la liste de paramètres
+ décrite ci-dessus. Si vous songez &agrave;
+ écrire des filtres &agrave; usage
+ général, alors faites en sorte qu'ils se
+ conforment &agrave; ces mêmes listes de
+ paramètres et de codes de retour.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-if-conversion">
+ <title>Gérer les travaux d'impression de texte brut sur
+ des imprimantes &postscript;</title>
+
+ <indexterm><primary>travaux d'impression</primary></indexterm>
+
+ <para>Si vous êtes l'unique utilisateur de votre
+ ordinateur et de votre imprimante &postscript; (ou
+ basée sur un autre langage), et que vous promettez de
+ ne jamais envoyer de texte brut &agrave; votre imprimante et
+ de ne jamais utiliser les fonctionnalités des divers
+ programmes qui voudraient lui en envoyer, alors vous pouvez
+ tout &agrave; fait passer cette section l'esprit
+ tranquille.</para>
+
+ <para>Toutefois, si vous désirez envoyer du
+ &postscript; et du texte brut &agrave; l'imprimante, alors
+ vous êtes instamment priés de compléter
+ la configuration de votre imprimante. Pour ce faire, nous
+ chargerons le filtre texte de détecter si le travail
+ d'impression est du texte brut ou du &postscript;. Tous les
+ travaux d'impression &postscript; doivent débuter par
+ <literal>%!</literal> (en ce qui concerne les autres
+ langages, référez-vous &agrave; la
+ documentation de l'imprimante). Si ces deux
+ caractères sont les deux premiers du travail
+ d'impression, il s'agit de &postscript; et le reste du
+ travail d'impression peut être passé
+ directement &agrave; l'imprimante. Dans le cas contraire,
+ alors le filtre convertit le texte en &postscript; et
+ imprime le résultat.</para>
+
+ <para>Comment procéder?</para>
+
+ <indexterm>
+ <primary>imprimantes</primary>
+ <secondary>série</secondary>
+ </indexterm>
+
+ <para>Si vous disposez d'une imprimante série, une
+ bonne façon de faire est d'installer
+ <command>lprps</command>. Il s'agit d'un filtre
+ d'impression &postscript; qui assure une communication en
+ duplex avec l'imprimante. Il met &agrave; jour le fichier
+ d'état de l'imprimante avec des informations
+ détaillées que cette dernière lui
+ fournit, de sorte que les utilisateurs et les
+ administrateurs puissent connaître
+ précisément l'état de l'imprimante (par
+ exemple <errorname>niveau de toner bas</errorname> ou
+ <errorname>bourrage papier</errorname>). Mais plus
+ important encore, il inclut un programme nommé
+ <command>psif</command> qui détecte si le travail
+ d'impression qui vient d'arriver est du texte brut et lance
+ <command>textps</command> (un autre programme fourni avec
+ <command>lprps</command>) pour le convertir en &postscript;.
+ Il utilise alors <command>lprps</command> pour envoyer le
+ travail d'impression &agrave; l'imprimante.</para>
+
+ <para><command>lprps</command> fait partie du catalogue des
+ logiciels portés &os; (lisez la section <link
+ linkend="ports">Le catalogue des logiciels
+ portés</link>). Vous pouvez installer un des deux
+ logiciels portés <filename
+ role="package">print/lprps-a4</filename> et <filename
+ role="package">print/lprps-letter</filename> en fonction du
+ format de papier utilisé. Après avoir
+ installé <command>lprps</command>, précisez
+ simplement le chemin vers le programme
+ <command>psif</command> qui fait partie de
+ <command>lprps</command>. Si vous avez installé
+ <command>lprps</command> en recourant au catalogue des
+ logiciels portés, placez les valeurs suivantes pour
+ l'entrée de l'imprimante série &postscript;
+ dans <filename>/etc/printcap</filename>:</para>
+
+ <programlisting>:if=/usr/local/libexec/psif:</programlisting>
+
+ <para>Vous devrez également renseigner le
+ paramètre <literal>rw</literal> qui indique &agrave;
+ <application>LPD</application> de requérir
+ l'imprimante en mode lecture/écriture.</para>
+
+ <para>Si vous disposez d'une imprimante &postscript;
+ parallèle (et ne pouvez donc pas utiliser la
+ communication en duplex avec l'imprimante dont a besoin
+ <command>lprps</command>), vous pouvez recourir &agrave; la
+ procédure suivante en tant que filtre texte:</para>
+
+ <programlisting>#!/bin/sh
+#
+# psif - Imprime du PostScript ou du texte brut sur une imprimante PostScript
+# Version script; CECI N'EST PAS la version fournie avec lprps
+# Fichier /usr/local/libexec/psif
+#
+
+IFS="" read -r first_line
+first_two_chars=`expr "$first_line" : '\(..\)'`
+
+if [ "$first_two_chars" = "%!" ]; then
+ #
+ # Travail PostScript, l'imprimer.
+ #
+ echo "$first_line" &amp;&amp; cat &amp;&amp; printf "\004" &amp;&amp; exit 0
+ exit 2
+else
+ #
+ # Texte brut, le convertir, puis l'imprimer.
+ #
+ ( echo "$first_line"; cat ) | /usr/local/bin/textps &amp;&amp; printf "\004" &amp;&amp; exit 0
+ exit 2
+fi</programlisting>
+
+ <para>Dans la procédure ci-dessus,
+ <command>textps</command> est un programme que nous avons
+ installé séparément pour convertir du
+ texte en &postscript;. Vous pouvez recourir &agrave;
+ n'importe quel programme texte-vers-&postscript;, selon
+ votre désir. Le catalogue des logiciels
+ portés de &os; (voir la section <link
+ linkend="ports">Le catalogue des logiciels
+ portés</link>) comprend un programme de conversion
+ texte-vers-&postscript; complet nommée
+ <literal>a2ps</literal>, qui pourrait vous
+ intéresser.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-ps">
+ <title>Emuler du &postscript; sur les imprimantes
+ non-&postscript;</title>
+
+ <indexterm>
+ <primary>PostScript</primary>
+ <secondary>émulation</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>Ghostscript</primary>
+ </indexterm>
+
+ <para>&postscript; est le standard <emphasis>de
+ fait</emphasis> pour l'impression et la composition de haute
+ qualité. Cependant, &postscript; est un standard
+ <emphasis>onéreux</emphasis>. Heureusement, Aladdin
+ Enterprises propose un succédané gratuit de
+ &postscript; nommé
+ <application>Ghostscript</application> qui fonctionne sous
+ &os;. <application>Ghostscript</application> peut lire la
+ majorité des fichiers &postscript; et peut produire
+ leurs pages sur une diversité de
+ périphériques, incluant beaucoup de marques
+ d'imprimantes non-&postscript;. En installant
+ <application>Ghostscript</application> et en recourant
+ &agrave; un filtre texte spécial, vous pouvez obtenir
+ de votre imprimante non-&postscript; qu'elle se comporte
+ comme une véritable imprimante &postscript;.</para>
+
+ <para><application>Ghostscript</application> fait partie du
+ catalogue des logiciels portés, de nombreuses
+ versions sont disponibles, la version la plus couramment
+ utilisée est <filename
+ role="package">print/ghostscript-gpl</filename>.</para>
+
+ <para>Pour émuler du &postscript;, il nous faut faire
+ en sorte que le filtre texte détecte s'il imprime un
+ fichier &postscript;. Si ce n'est pas le cas, alors le
+ filtre doit passer le fichier directement &agrave;
+ l'imprimante; sinon il recourra &agrave;
+ <application>Ghostscript</application> pour tout d'abord le
+ convertir dans un format que l'imprimante saura
+ interpréter.</para>
+
+ <para>Voici un exemple: la procédure suivante est un
+ filtre texte pour les imprimantes Hewlett Packard Deskjet
+ 500. Pour d'autres modèles, changez le
+ paramètre <option>-sDEVICE</option> de la commande
+ <command>gs</command>
+ (<application>Ghostscript</application>). (Entrez
+ <command>gs -h</command> pour obtenir une liste des
+ périphériques reconnus par l'installation
+ actuelle de <application>Ghostscript</application>).</para>
+
+ <programlisting>#!/bin/sh
+#
+# ifhp - Imprime du PostScript émulé par Ghostscript sur une DeskJet 500
+# Fichier /usr/local/libexec/ifhp
+
+#
+# Traite LF comme CR+LF (pour éviter l'"effet d'escalier" sur les
+# imprimantes HP/PCL):
+#
+printf "\033&amp;k2G" || exit 2
+
+#
+# Lit les deux premiers caractères du fichier
+#
+IFS="" read -r first_line
+first_two_chars=`expr "$first_line" : '\(..\)'`
+
+if [ "$first_two_chars" = "%!" ]; then
+ #
+ # Si c'est du PostScript; utiliser Ghostscript pour le convertir et l'imprimer
+ #
+ /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \
+ -sOutputFile=- - &amp;&amp; exit 0
+else
+ #
+ # Texte brut ou HP/PCL, donc impression directe; effectuer un
+ # saut de page &agrave; la fin pour éjecter la dernière page.
+ #
+ echo "$first_line" &amp;&amp; cat &amp;&amp; printf "\033&amp;l0H" &amp;&amp;
+exit 0
+fi
+
+exit 2</programlisting>
+
+ <para>Pour finir, vous devez communiquer &agrave;
+ <application>LPD</application> le filtre utilisé en
+ positionnant le paramètre
+ <literal>if</literal>:</para>
+
+ <programlisting>:if=/usr/local/libexec/ifhp:</programlisting>
+
+ <para>Voil&agrave;. Vous pouvez entrer <command>lpr
+ <replaceable>texte.simple</replaceable></command> et
+ <filename>lpr
+ <replaceable>peuimporte.ps</replaceable></filename>, et
+ chacune des deux commandes devrait imprimer avec
+ succès.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-convfilters">
+ <title>Filtres de conversion</title>
+
+ <para>Après avoir mené &agrave; bien la
+ configuration basique décrite &agrave; la section
+ <link linkend="printing-simple">Configuration simple de
+ l'imprimante</link>, la première chose que vous
+ souhaiterez probablement faire sera d'installer des filtres
+ de conversion pour vos formats de fichiers favoris (le
+ simple texte ASCII mis &agrave; part).</para>
+
+ <sect4>
+ <title>Pourquoi installer des filtres de conversion?</title>
+ <indexterm>
+ <primary>&tex;</primary>
+ <secondary>imprimer des fichiers DVI</secondary>
+ </indexterm>
+
+ <para>Les filtres de conversion facilitent l'impression de
+ différentes sortes de fichiers. Par exemple,
+ supposons que nous travaillions énormément
+ avec le système de composition &tex;, et que nous
+ ayons une imprimante &postscript;. Chaque fois que nous
+ générerons un fichier DVI &agrave; partir de
+ &tex;, nous ne pouvons l'imprimer directement avant
+ d'avoir converti ce fichier DVI en &postscript;. La
+ séquence de commandes serait la suivante:</para>
+
+ <screen>&prompt.user; <userinput>dvips <replaceable>seaweed-analysis.dvi</replaceable></userinput>
+&prompt.user; <userinput>lpr <replaceable>seaweed-analysis.ps</replaceable></userinput></screen>
+
+ <para>En installant un filtre de conversion pour fichiers
+ DVI, nous pouvons &agrave; chaque fois nous passer de
+ l'étape de conversion manuelle en chargeant
+ <application>LPD</application> de le faire &agrave; notre
+ place. Maintenant, &agrave; chaque fois que nous avons un
+ fichier DVI, nous ne sommes plus qu'&agrave; un pas de
+ l'impression:</para>
+
+ <screen>&prompt.user; <userinput>lpr -d <replaceable>seaweed-analysis.dvi</replaceable></userinput></screen>
+
+ <para>Nous faisons en sorte que
+ <application>LPD</application> se charge de la conversion
+ du fichier DVI &agrave; notre place en positionnant
+ l'option <option>-d</option>. La section <link
+ linkend="printing-lpr-options-format">Options de
+ conversion et de formatage</link> donne la liste des
+ options de conversion.</para>
+
+ <para>Pour chacune des options de conversion que vous voulez
+ faire accepter par une imprimante, installez un
+ <emphasis>filtre de conversion</emphasis> et indiquez son
+ chemin d'accès dans
+ <filename>/etc/printcap</filename>. Un filtre de
+ conversion ressemble au filtre texte de notre
+ configuration de base (voir la section <link
+ linkend="printing-textfilter">Installer le filtre
+ texte</link>), &agrave; ceci près qu'au lieu
+ d'imprimer du texte brut, le filtre convertit le fichier
+ en un format compréhensible par
+ l'imprimante.</para>
+ </sect4>
+
+ <sect4>
+ <title>Quels filtres de conversion dois-je
+ installer?</title>
+
+ <para>Vous devez installer les filtres de conversion que
+ vous vous attendez &agrave; utiliser. Si vous imprimez
+ beaucoup de données DVI, alors un filtre de
+ conversion DVI est dans la logique des choses. Si vous
+ devez imprimer beaucoup de troff, alors vous aurez
+ sûrement besoin d'un filtre troff.</para>
+
+ <para>Le tableau suivant récapitule les filtres avec
+ lesquels <application>LPD</application> fonctionne, leurs
+ paramètres <filename>/etc/printcap</filename>, et
+ comment les invoquer avec la
+ <command>lpr</command>:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Type de fichier</entry>
+ <entry>paramètre <filename>/etc/printcap</filename>
+ </entry>
+ <entry>option <command>lpr</command></entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>cifplot</entry>
+ <entry><literal>cf</literal></entry>
+ <entry><option>-c</option></entry>
+ </row>
+
+ <row>
+ <entry>DVI</entry>
+ <entry><literal>df</literal></entry>
+ <entry><option>-d</option></entry>
+ </row>
+
+ <row>
+ <entry>plot</entry>
+ <entry><literal>gf</literal></entry>
+ <entry><option>-g</option></entry>
+ </row>
+
+ <row>
+ <entry>ditroff</entry>
+ <entry><literal>nf</literal></entry>
+ <entry><option>-n</option></entry>
+ </row>
+
+ <row>
+ <entry>code FORTRAN</entry>
+ <entry><literal>rf</literal></entry>
+ <entry><option>-f</option></entry>
+ </row>
+
+ <row>
+ <entry>troff</entry>
+ <entry><literal>tf</literal></entry>
+ <entry><option>-f</option></entry>
+ </row>
+
+ <row>
+ <entry>image en mode point</entry>
+ <entry><literal>vf</literal></entry>
+ <entry><option>-v</option></entry>
+ </row>
+
+ <row>
+ <entry>texte brut</entry>
+ <entry><literal>if</literal></entry>
+ <entry>aucune, <option>-p</option>, or
+ <option>-l</option></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Dans notre exemple, utiliser <command>lpr -d</command>
+ veut dire que l'imprimante a besoin du paramètre
+ <literal>df</literal> dans l'entrée
+ <filename>/etc/printcap</filename> la concernant.</para>
+
+ <indexterm><primary>FORTRAN</primary></indexterm>
+ <para>Aussi fortement que certains puissent s'en émouvoir,
+ des formats comme le code FORTRAN ou le plot sont probablement
+ obsolètes. Sur votre site, vous pouvez attribuer de
+ nouvelles significations &agrave; ces options ou &agrave; toute
+ autre option de formatage en installant simplement des filtres personnalisés. Par exemple,
+ supposons que vous aimeriez imprimer des fichiers Printerleaf
+ directement (fichiers issus du programme de publication assistée par ordinateur Interleaf),
+ mais jamais de fichiers plot. Vous pourriez alors installer un
+ filtre de conversion Printerleaf sous le paramètre
+ <literal>gf</literal> et ensuite informer vos
+ utilisateurs que <command>lpr -g</command> veut dire
+ <quote>imprimer des fichiers Printerleaf</quote>.</para>
+ </sect4>
+
+ <sect4>
+ <title>Installer des filtres de conversion</title>
+
+ <para>Etant donné que les filtres de conversion sont des
+ applications qui ne font pas partie du système &os;
+ de base, vous devriez les installer dans
+ <filename>/usr/local</filename>. Le répertoire
+ <filename class="directory">/usr/local/libexec</filename> est une destination
+ de choix, car ce sont des programmes spécialisés
+ que seul <application>LPD</application> lancera; les
+ utilisateurs ordinaires ne devraient jamais avoir &agrave;
+ les lancer.</para>
+
+ <para>Pour activer un filtre de conversion, précisez son
+ chemin d'accès dans le paramètre relatif &agrave;
+ l'imprimante de destination dans
+ <filename>/etc/printcap</filename>.</para>
+
+ <para>Dans notre exemple, nous allons ajouter le filtre de
+ conversion DVI pour l'imprimante nommée
+ <literal>bamboo</literal>. Revoici le fichier
+ <filename>/etc/printcap</filename> d'exemple, avec le nouveau
+ paramètre <literal>df</literal> pour l'imprimante
+ <literal>bamboo</literal>:</para>
+
+ <programlisting>#
+# /etc/printcap pour la machine rose - ajout du filtre df pour bamboo
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:sd=/var/spool/lpd/rattan:\
+ :lp=/dev/lpt0:\
+ :if=/usr/local/libexec/if-simple:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=/var/spool/lpd/bamboo:\
+ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
+ :if=/usr/local/libexec/psif:\
+ :df=/usr/local/libexec/psdf:</programlisting>
+
+ <para>Le filtre DVI est une procédure nommée
+ <filename>/usr/local/libexec/psdf</filename>. En voici le
+ contenu:</para>
+
+ <programlisting>#!/bin/sh
+#
+# psdf - filtre DVI vers imprimante PostScript
+# Fichier /usr/local/libexec/psdf
+#
+# Appelé par lpd quand l'utilisateur lance lpr -d
+#
+exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"</programlisting>
+
+ <para>Cette procédure lance <command>dvips</command> en mode filtre (cela
+ correspond au paramètre <option>-f</option>) sur
+ l'entrée standard, qui est le travail d'impression
+ &agrave; exécuter. Ensuite, elle lance le filtre pour imprimante
+ &postscript; <command>lprps</command> (voir la section
+ <link linkend="printing-advanced-if-conversion">Gérer les
+ travaux d'impression de texte brut sur des imprimantes
+ &postscript;</link>) avec les paramètres que
+ <application>LPD</application> lui a passés.
+ Le programme <command>lprps</command> utilisera ces paramètres pour
+ comptabiliser les pages imprimées.</para>
+ </sect4>
+
+ <sect4>
+ <title>Exemples de filtre de conversion
+ supplémentaires</title>
+
+ <para>Il n'existe pas de procédure figée pour l'installation
+ des filtres de conversion, des exemples fonctionnels sont
+ présentés dans cette section. Inspirez-vous de ces
+ exemples pour créer vos propres filtres. Utilisez les
+ tels quels s'il s'avèrent adéquats.</para>
+
+ <para>Cet exemple présente un filtre de conversion d'image
+ en mode point (en fait un fichier GIF) pour une imprimante
+ Hewlett-Packard LaserJet III-Si:</para>
+
+ <programlisting>#!/bin/sh
+#
+# hpvf - Convertit des fichiers GIF en HP/PCL, puis les imprime
+# Fichier /usr/local/libexec/hpvf
+
+PATH=/usr/X11R6/bin:$PATH; export PATH
+giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \
+ &amp;&amp; exit 0 \
+ || exit 2</programlisting>
+
+ <para>Son fonctionnement est le suivant: il convertit le fichier
+ GIF en un format portable universel, puis en format
+ portable en niveau de gris, et ensuite
+ en bitmap portable, qu'il convertit enfin
+ en données compatibles LaserJet/PCL.</para>
+
+ <para>Voici le <filename>/etc/printcap</filename> comportant une
+ entrée pour une imprimante recourant au filtre
+ ci-dessus:</para>
+
+ <programlisting>#
+# /etc/printcap pour la machine orchid
+#
+teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
+ :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
+ :if=/usr/local/libexec/hpif:\
+ :vf=/usr/local/libexec/hpvf:</programlisting>
+
+ <para>La procédure suivante est un filtre de conversion de
+ données troff du système de composition groff pour
+ l'imprimante &postscript; <literal>bamboo</literal>:</para>
+
+ <programlisting>#!/bin/sh
+#
+# pstf - Convertit des données troff de groff en PS, puis imprime.
+# Fichier /usr/local/libexec/pstf
+#
+exec grops | /usr/local/libexec/lprps "$@"</programlisting>
+
+ <para>La procédure ci-dessus emploie de nouveau
+ <command>lprps</command> pour gérer la communication
+ avec l'imprimante. S'il s'agissait d'une imprimante sur port
+ parallèle, nous utiliserions plutôt la procédure
+ suivante:</para>
+
+ <programlisting>#!/bin/sh
+#
+# pstf - Convertit des données troff de groff en PS, puis imprime.
+# Fichier /usr/local/libexec/pstf
+#
+exec grops</programlisting>
+
+ <para>C'est tout. Voici l'entrée qu'il faut ajouter dans
+ <filename>/etc/printcap</filename> pour activer le filtre:</para>
+
+ <programlisting>:tf=/usr/local/libexec/pstf:</programlisting>
+
+ <para>Voici un exemple qui pourrait faire rougir les vieux briscards
+ de FORTRAN. C'est un filtre de code FORTRAN pour toute
+ imprimante sachant imprimer du texte brut. Nous l'installerons
+ pour l'imprimante <literal>teak</literal>:</para>
+
+ <programlisting>#!/bin/sh
+#
+# hprf - filtre texte FORTRAN pour LaserJet 3si:
+# Fichier /usr/local/libexec/hprf
+#
+
+printf "\033&amp;k2G" &amp;&amp; fpr &amp;&amp; printf "\033&amp;l0H" &amp;&amp;
+ exit 0
+exit 2</programlisting>
+
+ <para>Et nous ajouterons cette ligne dans
+ <filename>/etc/printcap</filename> pour l'imprimante
+ <literal>teak</literal> afin d'activer le filtre:</para>
+
+ <programlisting>:rf=/usr/local/libexec/hprf:</programlisting>
+
+ <para>Voici un dernier exemple, quelque peu complexe. Nous allons
+ ajouter un filtre DVI pour l'imprimante LaserJet
+ <literal>teak</literal> présentée ci-dessus. Tout
+ d'abord, la partie facile: mettre &agrave; jour
+ <filename>/etc/printcap</filename> avec l'emplacement du
+ filtre DVI:</para>
+
+ <programlisting>:df=/usr/local/libexec/hpdf:</programlisting>
+
+ <para>Et maintenant, la partie difficile: écrire le filtre.
+ Pour cela, nous avons besoin d'un programme de conversion
+ DVI-vers-LaserJet/PCL. Le catalogue des logiciels portés
+ (voyez la section <link linkend="ports">Le catalogue des logiciels
+ portés</link>) en possède un: <filename
+ role="package">print/dvi2xx</filename>.
+ Installer ce logiciel porté nous fournira le programme
+ dont nous avons besoin, <command>dvilj2p</command>, qui
+ convertit le DVI en code compatible LaserJet IIp, LaserJet III et
+ LaserJet 2000.</para>
+
+ <para>L'utilitaire <command>dvilj2p</command> rend le filtre
+ <command>hpdf</command> assez complexe, parce que
+ <command>dvilj2p</command> ne sait pas lire l'entrée
+ standard. Il lui faut un nom de fichier. Pire encore, le nom du fichier doit se terminer par
+ <filename>.dvi</filename>, ce qui rend l'utilisation de
+ <filename>/dev/fd/0</filename> pour l'entrée standard
+ problématique. Nous pouvons contourner cette
+ difficulté en créant un lien symbolique temporaire
+ (se terminant par <filename>.dvi</filename>) pointant vers
+ <filename>/dev/fd/0</filename>, obligeant ainsi
+ <command>dvilj2p</command> &agrave; lire l'entrée
+ standard.</para>
+
+ <para>Le seul petit accroc restant est que nous ne pouvons pas
+ utiliser <filename>/tmp</filename> pour le lien temporaire. Les
+ liens symboliques ont pour propriétaire l'utilisateur et le
+ group <username>bin</username>. Le filtre est lancé sous
+ l'utilisateur <username>daemon</username>. Et le bit <quote>sticky</quote> est
+ positionné sur le répertoire
+ <filename>/tmp</filename>. Le filtre peut créer le lien,
+ mais il ne pourra pas nettoyer lorsqu'il aura fini et supprimer
+ ce lien puisqu'il appartient &agrave; un utilisateur
+ différent.</para>
+
+ <para>Au lieu de ça, le filtre créera le lien dans
+ le répertoire courant, qui est le répertoire
+ de la file d'attente des travaux d'impression (précisé par le paramètre
+ <literal>sd</literal> dans <filename>/etc/printcap</filename>).
+ C'est l'endroit idéal pour faire travailler les filtres,
+ particulièrement parce qu'il y a (parfois) plus d'espace
+ disque libre dans ce répertoire que
+ sous <filename>/tmp</filename>.</para>
+
+ <para>Voici, enfin, le filtre:</para>
+
+ <programlisting>#!/bin/sh
+#
+# hpdf - Imprime des données DVI sur une imprimante HP/PCL
+# Fichier /usr/local/libexec/hpdf
+
+PATH=/usr/local/bin:$PATH; export PATH
+
+#
+# Définit une fonction de nettoyage de nos fichiers temporaires. Ils prennent place
+# dans le répertoire courant, qui sera le répertoire
+# de file d'attente
+# de l'imprimante.
+#
+cleanup() {
+ rm -f hpdf$$.dvi
+}
+
+#
+# Définit une fonction de gestion des erreurs fatales: affiche le message
+# d'erreur et retourne 2. Ce code d'erreur de 2 indique &agrave; LPD
+# de ne pas essayer de réimprimer le travail d'impression
+#
+fatal() {
+ echo "$@" 1&gt;&amp;2
+ cleanup
+ exit 2
+}
+
+#
+# Si l'utilisateur enlève le travail d'impression, LPD envoie SIGINT, donc
+# il faut capturer le signal SIGINT
+# (et quelques autres signaux) pour nettoyer après notre passage.
+#
+trap cleanup 1 2 15
+
+#
+# Assurons-nous qu'il n'y ait pas conflit ce nom avec des fichiers existants.
+#
+cleanup
+
+#
+# Lien du fichier DVI vers l'entrée standard (fichier &agrave; imprimer).
+#
+ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0"
+
+#
+# Conversion LF = CR+LF
+#
+printf "\033&amp;k2G" || fatal "Cannot initialize printer"
+
+#
+# Conversion et impression. Le code de retour de dvilj2p ne semble
+# pas fiable: ignorons-le.
+#
+dvilj2p -M1 -q -e- dfhp$$.dvi
+
+#
+# Nettoyage et sortie de la procédure
+#
+cleanup
+exit 0</programlisting>
+
+ </sect4>
+
+ <sect4 id="printing-advanced-autoconv">
+ <title>Conversion automatique: une alternative aux filtres de
+ conversion</title>
+
+ <para>Tous ces filtres de conversion apportent beaucoup &agrave;
+ votre environnement d'impression, mais nécessitent que
+ l'utilisateur précise (dans la ligne de commande
+ &man.lpr.1;) lequel utiliser. Si vos utilisateurs ne sont pas
+ particulièrement versés en informatique,
+ préciser une option de filtre sera problématique. Mais ce
+ qui s'avère pire encore est qu'une option de filtre mal
+ choisie peut lancer un filtre sur un type de fichier erroné
+ et causer l'impression de centaines de pages.</para>
+
+ <para>Plutôt que d'installer quelque filtre de conversion
+ que ce soit, vous préférerez sans doute laisser
+ le filtre texte (puisque c'est le filtre par défaut)
+ déterminer le type de fichier qu'on lui a demandé
+ d'imprimer et lancer automatiquement le filtre de conversion
+ approprié. Des outils comme <command>file</command>
+ peuvent s'avérer utiles dans ce cas. Bien entendu, il sera
+ difficile d'établir les différences entre
+ <emphasis>certains</emphasis> types de fichiers&mdash;et vous
+ pouvez toujours, bien sûr, fournir des filtres de conversion
+ uniquement pour eux.</para>
+
+ <indexterm><primary>apsfilter</primary></indexterm>
+ <indexterm>
+ <primary>imprimer</primary>
+ <secondary>filtres</secondary>
+ <tertiary>apsfilter</tertiary>
+ </indexterm>
+
+ <para>Le catalogue des logiciels portés &os; contient un
+ filtre texte, nommé <command>apsfilter</command>
+ (<filename role="package">print/apsfilter</filename>), qui
+ sait effectuer la conversion automatique. Il peut
+ reconnaître le texte brut, le &postscript; les
+ fichiers DVI et quasiment n'importe quelle sorte de
+ fichier, effectuer les conversions appropriées et
+ imprimer.</para>
+ </sect4>
+ </sect3>
+
+ <sect3 id="printing-advanced-of">
+ <title>Filtres de sortie</title>
+
+ <para>Le gestionnaire d'impression
+ <application>LPD</application> reconnaît un autre
+ type de filtre dont nous n'avons pas
+ encore discuté: le filtre de sortie. Un filtre de
+ sortie est destiné &agrave; l'impression de texte brut
+ seulement, comme le filtre texte, mais avec de nombreuses
+ simplifications. Si vous utilisez un filtre de sortie mais pas
+ de filtre texte, alors:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><application>LPD</application> lance un filtre de sortie
+ une seule fois par travail d'impression, au lieu d'une fois
+ pour chacun des fichiers du travail d'impression.</para>
+ </listitem>
+
+ <listitem>
+ <para><application>LPD</application> ne fournit rien pour
+ permettre au filtre de sortie de
+ repérer le début ou la fin des fichiers du
+ travail d'impression.</para>
+ </listitem>
+
+ <listitem>
+ <para><application>LPD</application> ne passe pas le nom de
+ l'utilisateur ou le nom de la machine au filtre, qui n'est
+ donc pas prévu pour effectuer la
+ comptabilisation de l'impression. En fait, il ne
+ reçoit que deux paramètres:</para>
+
+ <cmdsynopsis>
+ <command>nom-du-filtre</command>
+ <arg choice="plain">-w<replaceable>largeur</replaceable></arg>
+ <arg choice="plain">-l<replaceable>hauteur</replaceable></arg>
+ </cmdsynopsis>
+
+ <para>Où <replaceable>largeur</replaceable> provient du
+ paramètre <literal>pw</literal> et
+ <replaceable>hauteur</replaceable> du paramètre
+ <literal>pl</literal> de l'entrée
+ <filename>/etc/printcap</filename> pour l'imprimante en
+ question.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Ne vous laissez pas séduire par la simplicité
+ d'un filtre de sortie. Si vous désirez que chaque fichier
+ d'un travail d'impression commence sur une page différente,
+ un filtre de sortie <emphasis>ne conviendra pas</emphasis>.
+ Utilisez un filtre texte (également appelé filtre
+ d'entrée); voir la section <link
+ linkend="printing-textfilter">Installer le filtre texte</link>. De
+ plus, le filtre de sortie se révèle en fait
+ <emphasis>plus complexe</emphasis> en ce sens qu'il doit examiner
+ le flux d'octets qui lui est envoyé pour y rechercher
+ des caractères spéciaux et qu'il
+ doit s'envoyer &agrave; lui-même des signaux comme s'ils
+ provenaient de <application>LPD</application>.</para>
+
+ <para>Toutefois, un filtre de sortie s'avère
+ <emphasis>nécessaire</emphasis> si vous désirez des
+ pages d'en-tête et avez besoin d'envoyer des séquences
+ d'échappement ou d'autres chaînes d'initialisation
+ afin de pouvoir imprimer la page d'en-tête. (Mais il est
+ également <emphasis>futile</emphasis> si vous voulez imputer
+ les pages d'en-tête au compte de l'utilisateur, puisque
+ <application>LPD</application> ne livre pas d'information
+ sur l'utilisateur ou la machine au filtre de sortie).</para>
+
+ <para>Sur une seule imprimante, <application>LPD</application>
+ permet &agrave; la fois un filtre de sortie et des filtres texte ou
+ autres. Dans de tels cas, <application>LPD</application> ne lancera
+ le filtre de sortie que pour imprimer la page d'en-tête
+ (consultez la section <link
+ linkend="printing-advanced-header-pages">Pages
+ d'en-tête</link>). <application>LPD</application> attend
+ alors que le filtre de sortie <emphasis>s'arrête
+ par lui-même</emphasis> en envoyant deux octets au filtre: ASCII 031 suivi
+ d'ASCII 001. Lorsqu'un filtre de sortie lit ces deux octets
+ (031,001), il devrait s'arrêter en s'envoyant &agrave;
+ lui-même un <literal>SIGSTOP</literal>. Lorsque
+ <application>LPD</application> a fini d'exécuter les
+ autres filtres, il relance le filtre de sortie en lui envoyant
+ un <literal>SIGCONT</literal>.</para>
+
+ <para>S'il y a un filtre de sortie mais <emphasis>aucun</emphasis>
+ filtre texte et que <application>LPD</application> s'occupe
+ d'un travail d'impression concernant du texte brut, alors
+ <application>LPD</application> utilise le filtre de sortie pour
+ réaliser ce travail d'impression. Comme exposé
+ plus haut, le filtre de sortie imprimera chacun des travaux
+ d'impression séquentiellement sans que des sauts de page
+ ou autres formes d'avancement du
+ papier ne surviennent, et ce n'est vraisemblablement
+ <emphasis>pas</emphasis> ce que vous désirez. Dans
+ presque tous les cas, il vous faut un filtre texte.</para>
+
+ <para>Le programme <command>lpf</command>, que nous avons
+ présenté précédemment comme un filtre texte, peut
+ également fonctionner en tant que filtre de sortie. Si
+ vous avez besoin d'un filtre de sortie vite-fait-bien-fait mais
+ ne voulez pas écrire le code d'examen d'octets et d'envoi
+ de signal, essayez <command>lpf</command>. Vous pouvez
+ également inclure <command>lpf</command> dans une procédure
+ pour prendre en charge tout code d'initialisation qui pourrait
+ être requis par l'imprimante.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-lpf">
+ <title><command>lpf</command>: un filtre texte</title>
+
+ <para>Le programme <filename>/usr/libexec/lpr/lpf</filename> qui
+ est fourni avec la distribution binaire &os; est un filtre texte
+ (un filtre d'entrée) qui sait indenter la sortie (un
+ travail d'impression soumis avec <command>lpr -i</command>),
+ laisse passer les caractères littéraux (travail
+ d'impression soumis avec <command>lpr -l</command>), ajuste la
+ position d'impression des retours arrière et des
+ tabulations dans le travail d'impression, et comptabilise les
+ pages imprimées. Il peut également servir
+ de filtre de sortie.</para>
+
+ <para>Le filtre <command>lpf</command> convient &agrave; de nombreux
+ environnements d'impression. Et bien qu'il ne puisse pas envoyer de
+ séquences d'initialisation &agrave; une imprimante, il est
+ aisé d'écrire une procédure pour effectuer
+ l'initialisation nécessaire et ensuite exécuter
+ <command>lpf</command>.</para>
+
+ <indexterm><primary>page accounting</primary></indexterm>
+ <indexterm>
+ <primary>accounting</primary>
+ <secondary>imprimante</secondary>
+ </indexterm>
+
+ <para>Afin que <command>lpf</command> mène &agrave; bien la
+ comptabilisation des pages, il faut que des valeurs correctes
+ soient indiquées pour les paramètres
+ <literal>pw</literal> et <literal>pl</literal> dans le fichier
+ <filename>/etc/printcap</filename>. Il utilise ces valeurs pour
+ déterminer combien de texte peut être imprimé
+ sur une page et combien de pages ont été
+ imprimées dans le travail d'impression d'un utilisateur.
+ Pour plus d'informations sur la comptabilisation de l'impression,
+ lisez la section
+ <link linkend="printing-advanced-acct">Comptabiliser l'utilisation
+ de l'imprimante</link>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="printing-advanced-header-pages">
+ <title>Pages d'en-tête</title>
+
+ <para>Si vous avez <emphasis>beaucoup</emphasis> d'utilisateurs, et
+ que tous utilisent des imprimantes diverses, alors vous allez
+ certainement envisager les <emphasis>pages
+ d'en-tête</emphasis> comme un mal nécessaire.</para>
+
+ <indexterm>
+ <primary>bannières</primary>
+ <see>pages d'en-tête</see>
+ </indexterm>
+ <indexterm><primary>pages d'en-tête</primary></indexterm>
+
+ <para>Les pages d'en-tête, également appelées
+ <emphasis>bannières</emphasis> ou
+ <emphasis>burst page</emphasis>, identifient &agrave; qui
+ appartiennent les travaux d'impression après qu'ils
+ aient été imprimés. Elles sont en
+ général imprimées en caractères de
+ grande taille et en gras, peuvent comporter des bordures
+ décorées, de sorte qu'elles contrastent dans
+ une pile d'impressions avec les véritables documents formant
+ les travaux d'impression des utilisateurs. Elles leur permettent
+ de retrouver facilement leurs travaux d'impression.
+ L'inconvénient majeur d'une page d'en-tête est qu'elle
+ représente une page supplémentaire &agrave;
+ imprimer pour chacun des travaux d'impression, son utilité
+ éphémère ne dépasse pas quelques
+ minutes, et elle termine au recyclage du papier ou dans une corbeille.
+ (Notez que une page d'en-tête est liée &agrave; chaque
+ travail d'impression et non &agrave; chaque fichier dans un travail
+ d'impression: il se pourrait donc que le gâchis de papier ne
+ soit pas si grand.)</para>
+
+ <para>Le système <application>LPD</application> peut fournir
+ des pages d'en-tête automatiquement pour vos impressions
+ <emphasis>si</emphasis> votre imprimante sait imprimer directement du texte
+ brut. Si vous disposez d'une imprimante &postscript;,
+ il vous faudra un programme externe pour générer la
+ page d'en-tête; lisez la section <link
+ linkend="printing-advanced-header-pages-ps">Les pages d'en-tête
+ sur les imprimantes &postscript;</link>.</para>
+
+ <sect3 id="printing-advanced-header-pages-enabling">
+ <title>Activer les pages d'en-tête</title>
+
+ <para>Dans la section <link linkend="printing-simple">Configuration
+ simple de l'imprimante</link>, nous avons désactivé
+ les pages d'en-tête en positionnant le paramètre
+ <literal>sh</literal> (ce qui signifie <quote>suppress
+ header</quote>, soit <quote>suppression des
+ en-têtes</quote>) dans <filename>/etc/printcap</filename>.
+ Pour activer les pages d'en-tête sur une imprimante, il
+ suffit d'enlever ce paramètre
+ <literal>sh</literal>.</para>
+
+ <para>Cela semble trop facile, n'est-ce pas?</para>
+
+ <para>C'est vrai. Il se <emphasis>pourrait</emphasis> que vous
+ ayez &agrave; fournir un filtre de sortie pour envoyer des
+ chaînes d'initialisation &agrave; l'imprimante. Voici
+ un exemple de filtre sortie pour les imprimantes Hewlett-Packard
+ compatibles-PCL:</para>
+
+ <programlisting>#!/bin/sh
+#
+# hpof - filtre de sortie pour les imprimantes Hewlett Packard compatibles PCL
+# Fichier /usr/local/libexec/hpof
+
+printf "\033&amp;k2G" || exit 2
+exec /usr/libexec/lpr/lpf</programlisting>
+
+ <para>Spécifiez le chemin d'accès au filtre de
+ sortie avec le paramètre <literal>of</literal>. Lisez
+ la section <link linkend="printing-advanced-of">Filtres de
+ sortie</link> pour plus de détails.</para>
+
+ <para>Voici un fichier <filename>/etc/printcap</filename>
+ d'exemple pour l'imprimante <literal>teak</literal> que nous
+ avons présentée plus haut; nous avons activé
+ les pages d'en-tête et ajouté le fichier de sortie
+ ci-dessus:</para>
+
+ <programlisting>#
+# /etc/printcap pour la machine orchid
+#
+teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
+ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
+ :if=/usr/local/libexec/hpif:\
+ :vf=/usr/local/libexec/hpvf:\
+ :of=/usr/local/libexec/hpof:</programlisting>
+
+ <para>Désormais, lorsque les utilisateurs lancent des
+ travaux d'impression avec <literal>teak</literal>, ils obtiennent
+ une page d'en-tête avec chaque travail d'impression. Si
+ vos utilisateurs désirent perdre du temps &agrave;
+ rechercher leurs impressions, ils peuvent omettre la page
+ d'en-tête en soumettant le travail d'impression avec la
+ commande <command>lpr -h</command>; lisez la section
+ <link linkend="printing-lpr-options-misc">Options des pages
+ d'en-tête</link> pour connaître plus d'options
+ &man.lpr.1;.</para>
+
+ <note>
+ <para><application>LPD</application> imprime un
+ caractère de saut de page après une
+ page d'en-tête. Si votre imprimante utilise un
+ autre caractère ou séquence de
+ caractères différente pour éjecter une page,
+ précisez-le avec le paramètre
+ <literal>ff</literal> dans
+ <filename>/etc/printcap</filename>.</para>
+ </note>
+ </sect3>
+
+ <sect3 id="printing-advanced-header-pages-controlling">
+ <title>Contrôle des pages d'en-tête</title>
+
+ <para>Une fois les pages d'en-tête activées,
+ <application>LPD</application> produira un <emphasis>en-tête
+ long</emphasis>, c'est &agrave; dire une page entière de
+ grands caractères identifiant l'utilisateur, le nom
+ de la machine et le travail d'impression. Voici un exemple
+ (<username>kelly</username> a lancé le travail d'impression nommé
+ <quote>outline</quote> depuis la machine <hostid>rose</hostid>):</para>
+
+ <programlisting> k ll ll
+ k l l
+ k l l
+ k k eeee l l y y
+ k k e e l l y y
+ k k eeeeee l l y y
+ kk k e l l y y
+ k k e e l l y yy
+ k k eeee lll lll yyy y
+ y
+ y y
+ yyyy
+
+
+ ll
+ t l i
+ t l
+ oooo u u ttttt l ii n nnn eeee
+ o o u u t l i nn n e e
+ o o u u t l i n n eeeeee
+ o o u u t l i n n e
+ o o u uu t t l i n n e e
+ oooo uuu u tt lll iii n n eeee
+
+
+
+
+
+
+
+
+
+ r rrr oooo ssss eeee
+ rr r o o s s e e
+ r o o ss eeeeee
+ r o o ss e
+ r o o s s e e
+ r oooo ssss eeee
+
+
+
+
+
+
+
+ Job: outline
+ Date: Sun Sep 17 11:04:58 1995</programlisting>
+
+ <para><application>LPD</application> ajoute un saut de page
+ &agrave; ce texte de sorte que le travail d'impression commence
+ sur une nouvelle page (&agrave; moins que <literal>sf</literal>
+ (supprimer les sauts de page) ne soit dans l'entrée correspondant
+ &agrave; l'imprimante dans <filename>/etc/printcap</filename>).</para>
+
+ <para>Si vous préférez, <application>LPD</application> peut
+ générer des <emphasis>en-tête courts</emphasis>; ajoutez
+ le paramètre <literal>sb</literal> (en-tête court) dans le
+ fichier <filename>/etc/printcap</filename>. La
+ page d'en-tête ressemblera &agrave; ceci:</para>
+
+ <programlisting>rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995</programlisting>
+
+ <para>Par défaut également,
+ <application>LPD</application> imprime d'abord la page
+ d'en-tête, puis le travail d'impression. Pour inverser ce
+ comportement, placez le paramètre <literal>hl</literal>
+ (en-tête &agrave; la fin) dans <filename>/etc/printcap</filename>.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-header-pages-accounting">
+ <title>Comptabiliser les pages d'en-tête</title>
+
+ <para>Utiliser les pages d'en-tête fournies par
+ <application>LPD</application> provoque un comportement
+ particulier lorsqu'il s'agit de comptabiliser l'utilisation de
+ l'imprimante: les pages d'en-tête doivent être
+ <emphasis>gratuites</emphasis>.</para>
+
+ <para>Pourquoi?</para>
+
+ <para>Parce que le filtre de sortie est le seul programme externe
+ pouvant tenir les comptes qui aura le contrôle lors de
+ l'impression de la page d'en-tête, et qu'aucune
+ information sur <emphasis>l'utilisateur ou le nom
+ de la machine</emphasis> ne lui est donnée ni aucun
+ fichier de comptabilisation, par conséquent il ne sait
+ pas &agrave; qui attribuer le coût de l'utilisation
+ de l'imprimante. Il ne suffit pas non plus de
+ simplement <quote>ajouter une page</quote> au filtre
+ texte ou un quelconque filtre de conversion (qui, eux,
+ possèdent des informations sur l'utilisateur et la
+ machine) puisque les utilisateurs peuvent supprimer les
+ pages d'en-tête avec <command>lpr -h</command>. Ils
+ pourraient toujours se voir imputer des pages d'en-tête
+ qu'ils n'auraient pas imprimées. En somme,
+ <command>lpr -h</command> demeurera l'option favorite des
+ utilisateurs soucieux de l'environnement, mais vous ne pouvez
+ aucunement les inciter &agrave; l'utiliser.</para>
+
+ <para>Il ne <emphasis>suffit pas non plus</emphasis> de
+ laisser chacun des filtres générer ses propres
+ pages d'en-tête (ce qui permettrait de savoir &agrave;
+ qui imputer les coûts). Si les utilisateurs
+ désiraient omettre les pages d'en-tête avec
+ <command>lpr -h</command>, ils les obtiendraient quand
+ même et le coût leur serait attribué puisque
+ <application>LPD</application> ne donne aucun renseignement sur
+ l'emploi de l'option <option>-h</option> &agrave; aucun des
+ filtres.</para>
+
+ <para>Alors, quelles sont les options &agrave; votre disposition?</para>
+
+ <para>Vous pouvez:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Accepter le comportement de
+ <application>LPD</application> et la gratuité des pages
+ d'en-tête.</para>
+ </listitem>
+
+ <listitem>
+ <para>Installer une alternative &agrave;
+ <application>LPD</application>, comme
+ <application>LPRng</application>. La section
+ <link linkend="printing-lpd-alternatives">Alternatives au
+ gestionnaire d'impression standard</link> en
+ dit plus au sujet des autres gestionnaires
+ d'impression qui peuvent être
+ substitués &agrave;
+ <application>LPD</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ecrire un filtre de sortie
+ <emphasis>intelligent</emphasis>. Normalement, un filtre de
+ sortie n'est pas censé faire plus que d'initialiser
+ une imprimante ou exécuter une conversion simple de
+ caractères. Il convient aux pages d'en-tête
+ et aux travaux d'impression de texte brut (lorsqu'il n'y
+ a aucun filtre (d'entrée) texte). Mais, s'il
+ existe un filtre texte pour les travaux d'impression de texte, alors <application>LPD</application> ne lancera
+ le filtre de sortie que pour les pages d'en-tête. Le
+ filtre de sortie peut également analyser le texte
+ de la page d'en-tête généré par
+ <application>LPD</application> pour déterminer quels
+ sont l'utilisateur et la machine &agrave; qui il faut
+ attribuer le coût de cette page d'en-tête. Le
+ seul autre problème avec cette méthode est
+ que le filtre de sortie ne sait toujours pas quel fichier
+ de comptabilisation utiliser (le nom du fichier
+ spécifié par le paramètre
+ <literal>af</literal> ne lui est pas fourni), mais si vous
+ disposez d'un fichier de comptabilisation bien
+ identifié, vous pouvez le coder en dur dans le
+ filtre de sortie. Afin de faciliter l'étape d'analyse,
+ utilisez le paramètre <literal>sh</literal>
+ (en-tête courte) dans <filename>/etc/printcap</filename>. D'un
+ autre côté, tout cela pourrait bien
+ représenter beaucoup de dérangement, et les
+ utilisateurs apprécieront certainement davantage
+ l'administrateur généreux qui propose la
+ gratuité des pages d'en-tête.</para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3 id="printing-advanced-header-pages-ps">
+ <title>Les pages d'en-tête sur les imprimantes
+ &postscript;</title>
+
+ <para>Comme décrit précédemment,
+ <application>LPD</application> est en mesure de
+ générer des pages d'en-tête texte convenant
+ pour de nombreuses d'imprimantes. Bien entendu, &postscript;
+ ne peut pas imprimer du texte directement, donc la
+ fonctionnalité de page d'en-tête offerte par
+ <application>LPD</application> est inutilisable ou presque.</para>
+
+ <para>Une solution manifeste est de faire générer
+ la page d'en-tête par tous les filtres de conversion et
+ le filtre texte. Les filtres devraient employer les
+ paramètres utilisateur et nom de machine pour
+ générer une page d'en-tête convenable.
+ L'inconvénient de cette méthode est que les
+ utilisateurs obtiendront toujours une page d'en-tête,
+ même s'ils soumettent leurs travaux d'impression avec
+ <command>lpr -h</command>.</para>
+
+ <para>Examinons cette méthode. La procédure ci-dessous prend
+ trois paramètres (le nom de l'utilisateur, le nom
+ de la machine et celui du travail d'impression) et
+ réalise une page d'en-tête simple en &postscript;:</para>
+
+ <programlisting>#!/bin/sh
+#
+# make-ps-header - génére une page d'en-tête PostScript sur la sortie standard
+# Fichier /usr/local/libexec/make-ps-header
+#
+
+#
+# Ce sont des unités PostScript (72 par pouce). A modifier pour A4 ou
+# tout autre format papier employé:
+#
+page_width=612
+page_height=792
+border=72
+
+#
+# Vérification des paramètres
+#
+if [ $# -ne 3 ]; then
+ echo "Usage: `basename $0` &lt;user&gt; &lt;host&gt; &lt;job&gt;" 1&gt;&amp;2
+ exit 1
+fi
+
+#
+# Mémorisation des paramètres, pour la lisibilité du PostScript, plus bas.
+#
+user=$1
+host=$2
+job=$3
+date=`date`
+
+#
+# Envoi du code PostScript sur stdout.
+#
+exec cat &lt;&lt;EOF
+%!PS
+
+%
+% Assurons-nous qu'il n'y a pas d'interférence avec le travail
+% utilisateur qui suivra
+%
+save
+
+%
+% Applique une grosse bordure désagréable autour
+% du bord de la page.
+%
+$border $border moveto
+$page_width $border 2 mul sub 0 rlineto
+0 $page_height $border 2 mul sub rlineto
+currentscreen 3 -1 roll pop 100 3 1 roll setscreen
+$border 2 mul $page_width sub 0 rlineto closepath
+0.8 setgray 10 setlinewidth stroke 0 setgray
+
+%
+% Affiche le nom de l'utilisateur, de façon jolie, grande et proéminente
+%
+/Helvetica-Bold findfont 64 scalefont setfont
+$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto
+($user) show
+
+%
+% Maintenant, les détails ennuyant:
+%
+/Helvetica findfont 14 scalefont setfont
+/y 200 def
+[ (Job:) (Host:) (Date:) ] {
+200 y moveto show /y y 18 sub def }
+forall
+
+/Helvetica-Bold findfont 14 scalefont setfont
+/y 200 def
+[ ($job) ($host) ($date) ] {
+ 270 y moveto show /y y 18 sub def
+} forall
+
+%
+% C'est tout
+%
+restore
+showpage
+EOF</programlisting>
+
+ <para>Désormais, chacun des filtres de conversion et le
+ filtre texte peuvent appeler cette procédure pour d'abord
+ générer la page d'en-tête, et ensuite imprimer
+ le travail d'impression de l'utilisateur. Voici le filtre
+ de conversion DVI déj&agrave; mentionné plus
+ haut dans ce document, modifié afin de
+ générer une page d'en-tête:</para>
+
+ <programlisting>#!/bin/sh
+#
+# psdf - filtre DVI vers imprimante PostScript
+# Fichier /usr/local/libexec/psdf
+#
+# Appelé par lpd quand l'utilisateur lance lpr -d
+#
+
+orig_args="$@"
+
+fail() {
+ echo "$@" 1&gt;&amp;2
+ exit 2
+}
+
+while getopts "x:y:n:h:" option; do
+ case $option in
+ x|y) ;; # Ignore
+ n) login=$OPTARG ;;
+ h) host=$OPTARG ;;
+ *) echo "LPD started `basename $0` wrong." 1&gt;&amp;2
+ exit 2
+ ;;
+ esac
+done
+
+[ "$login" ] || fail "Pas de nom d'utilisateur"
+[ "$host" ] || fail "PAs de nom de machine"
+
+( /usr/local/libexec/make-ps-header $login $host "DVI File"
+ /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args</programlisting>
+
+ <para>Observez que le filtre doit analyser la liste des
+ paramètres pour déterminer le nom de l'utilisateur et
+ celui de la machine. L'analyse menée par les autres
+ filtres de conversion est identique. Toutefois, le filtre
+ texte réclame un ensemble de paramètres
+ légèrement différent (voyez la section
+ <link linkend="printing-advanced-filters">Fonctionnement
+ des filtres</link>).</para>
+
+ <para>Comme précédemment exposé, cette solution,
+ quoique relativement simple, invalide l'option de
+ <quote>suppression de page d'en-tête</quote> (l'option
+ <option>-h</option>) de <command>lpr</command>. Si les
+ utilisateurs désiraient épargner la vie d'un
+ arbre (ou économiser quelques centimes, si vous faites
+ payer les pages d'en-tête), ils ne seraient pas en
+ mesure de le faire, puisque chaque filtre va imprimer une page
+ d'en-tête avec chaque travail d'impression.</para>
+
+ <para>Pour permettre aux utilisateurs de désactiver les
+ pages d'en-tête en fonction du travail d'impression,
+ il vous faudra recourir &agrave; l'une
+ des astuces de la section <link
+ linkend="printing-advanced-header-pages-accounting">Comptabiliser
+ les pages d'en-tête</link>: écrire un filtre de
+ sortie qui analyse la page d'en-tête
+ générée par LPD et produit une version
+ &postscript;. Si l'utilisateur soumet le travail d'impression
+ avec <command>lpr -h</command> alors ni
+ <application>LPD</application> ni votre filtre de sortie ne
+ généreront de page d'en-tête. Sinon, votre
+ filtre de sortie lira le texte en provenance de <application>LPD</application>
+ et enverra la page d'en-tête &postscript; appropriée
+ &agrave; l'imprimante.</para>
+
+ <para>Si vous disposez d'une imprimante &postscript; sur une
+ interface série, vous pouvez utiliser
+ <command>lprps</command>, qui est livré avec un filtre
+ de sortie, <command>psof</command>, qui réalise ce que
+ nous venons d'exposer ci-dessus. Notez que
+ <command>psof</command> n'assume pas la tenue de comptes pour
+ les pages d'en-tête.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="printing-advanced-network-printers">
+ <title>Imprimer via un réseau</title>
+
+ <indexterm>
+ <primary>imprimantes</primary>
+ <secondary>réseau</secondary>
+ </indexterm>
+ <indexterm><primary>impression réseau</primary></indexterm>
+
+ <para>&os; gère l'impression via un réseau: c'est
+ &agrave; dire en envoyant les travaux d'impression &agrave; des
+ imprimantes distantes. L'impression via un réseau
+ désigne deux choses différentes:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Accéder &agrave; une imprimante connectée
+ &agrave; une machine distante. Vous installez une imprimante
+ disposant d'une interface conventionnelle, série ou
+ parallèle, sur une machine. Puis vous configurez
+ <application>LPD</application> pour permettre l'accès
+ &agrave; l'imprimante depuis d'autres machines du
+ réseau. La section <link
+ linkend="printing-advanced-network-rm">Imprimantes
+ installées sur des machines distantes</link> en
+ détaillera la mise en &oelig;uvre.</para>
+ </listitem>
+
+ <listitem>
+ <para>Accéder &agrave; une imprimante directement
+ connectée au réseau. L'imprimante dispose d'une
+ interface réseau en plus (ou &agrave; la place)
+ d'interfaces plus conventionnelles, série ou
+ parallèle. Une imprimante de ce genre peut fonctionner
+ ainsi:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Elle peut comprendre le protocole <application>LPD</application>
+ et sait même gérer une file d'attente de travaux
+ d'impression provenant de machines distantes. En ce cas,
+ elle se comporte comme une machine normale qui
+ exécuterait <application>LPD</application>. Suivez
+ la même procédure que celle exposée
+ &agrave; la section <link
+ linkend="printing-advanced-network-rm">Imprimantes
+ installées sur des machines distantes</link> afin
+ de configurer une imprimante de ce genre.</para>
+ </listitem>
+
+ <listitem>
+ <para>Elle peut savoir gérer un flux de données au
+ travers d'une connexion réseau. Dans ce cas, vous
+ pouvez <quote>attacher</quote> l'imprimante &agrave; l'une
+ des machines du réseau en la rendant responsable
+ de la gestion de la file d'impression et de l'envoi des
+ travaux d'impression &agrave; l'imprimante. La section
+ <link linkend="printing-advanced-network-net-if">Imprimantes
+ avec des interfaces utilisant des flux réseau</link>
+ donne quelque indications sur l'installation d'imprimantes de ce
+ type.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+
+ <sect3 id="printing-advanced-network-rm">
+ <title>Imprimantes installées sur des machines
+ distantes</title>
+
+ <para>Le gestionnaire d'impression <application>LPD</application>
+ dispose des fonctions pour gérer l'envoi des travaux d'impression &agrave;
+ d'autres machines exécutant également
+ <application>LPD</application> (ou un système qui lui
+ est compatible). Cette fonctionnalité vous permet
+ d'installer une imprimante sur une machine, puis de
+ la rendre accessible depuis les autres
+ machines. Cela fonctionne également avec les imprimantes
+ disposant d'interfaces réseau comprenant le protocole
+ <application>LPD</application>.</para>
+
+ <para>Pour activer ce type d'impression &agrave; distance, installez
+ d'abord une imprimante sur une machine, qui sera
+ <emphasis>la machine d'impression</emphasis>, en suivant les
+ instructions de configuration basique décrites &agrave; la
+ section <link linkend="printing-simple">Configuration simple de
+ l'imprimante</link>. Réalisez toute étape de
+ la <link linkend="printing-advanced">configuration avancée
+ de l'imprimante</link> dont vous pourriez avoir besoin. Veillez &agrave;
+ tester
+ l'imprimante et vérifiez qu'elle fonctionne avec les
+ paramètres de <application>LPD</application> que vous avez
+ activés. Assurez-vous également que
+ <emphasis>la machine locale</emphasis> est autorisée &agrave;
+ utiliser le service <application>LPD</application> sur
+ <emphasis>la machine distante</emphasis> (lisez la section
+ <link linkend="printing-advanced-restricting-remote">Restreindre
+ les impressions &agrave; distance</link>).</para>
+
+ <indexterm>
+ <primary>imprimantes</primary>
+ <secondary>réseau</secondary>
+ </indexterm>
+
+ <indexterm><primary>impression en réseau</primary></indexterm>
+
+ <para>Si vous utilisez une imprimante avec une interface
+ réseau qui est compatible avec
+ <application>LPD</application>, alors <emphasis>la machine
+ d'impression</emphasis> dans le texte ci-dessous est
+ l'imprimante elle-même, et le <emphasis>nom de
+ l'imprimante</emphasis> est le nom que vous avez
+ paramétré pour l'imprimante. Lisez la documentation
+ livrée avec votre imprimante ou l'interface
+ réseau-imprimante.</para>
+
+ <tip>
+ <para>Si vous utilisez une Hewlett Packard Laserjet, alors le
+ nom d'imprimante <literal>text</literal> réalisera
+ la conversion LF en CRLF automatiquement, de sorte que vous
+ n'aurez pas besoin de la procédure <filename>hpif</filename>.</para>
+ </tip>
+
+ <para>Ensuite, sur les autres machines pour lesquelles vous
+ désirez autoriser l'accès &agrave; l'imprimante,
+ créez une ligne dans leur
+ <filename>/etc/printcap</filename> avec les paramètres
+ suivants:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Nommez cette entrée comme vous le voulez. Par
+ souci de simplicité, cependant, vous
+ préférerez certainement employer les
+ mêmes nom et alias que ceux utilisés sur
+ la machine de d'impression.</para>
+ </listitem>
+
+ <listitem>
+ <para>Laissez le paramètre <literal>lp</literal>
+ non-renseigné,
+ de manière explicite (<literal>:lp=:</literal>).</para>
+ </listitem>
+
+ <listitem>
+ <para>Créez un répertoire de file d'impression et
+ indiquez son chemin d'accès dans le paramètre
+ <literal>sd</literal>. C'est l&agrave; où
+ <application>LPD</application> entreposera les travaux
+ d'impression avant leur envoi vers la machine
+ d'impression.</para>
+ </listitem>
+
+ <listitem>
+ <para>Indiquez le nom de la machine d'impression avec le paramètre
+ <literal>rm</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Placez le nom de l'imprimante sur <emphasis>la
+ machine d'impression</emphasis> dans le paramètre
+ <literal>rp</literal>.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>C'est tout. Il n'est pas nécessaire de préciser
+ la liste des filtres de conversion, les dimensions de la page,
+ ou quoique ce soit d'autre dans le fichier
+ <filename>/etc/printcap</filename>.</para>
+
+ <para>Voici un exemple. La machine <hostid>rose</hostid> dispose
+ de deux imprimantes, <literal>bamboo</literal> et
+ <literal>rattan</literal>. Nous allons permettre aux utilisateurs
+ de la machine <hostid>orchid</hostid> d'imprimer avec ces
+ imprimantes.
+ Voici le fichier <filename>/etc/printcap</filename> pour
+ <hostid>orchid</hostid> (apparu dans la section
+ <link linkend="printing-advanced-header-pages-enabling">Activer
+ les pages d'en-tête</link>). Il contenait
+ déj&agrave; une entrée pour l'imprimante
+ <literal>teak</literal>; nous avons ajouté celles pour
+ les deux imprimantes sur la machine <hostid>rose</hostid>:</para>
+
+ <programlisting>#
+# /etc/printcap pour la machine orchid - ajout d'imprimantes (distantes)
+# sur rose
+#
+
+#
+# teak est locale; connectée directement &agrave; orchid:
+#
+teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
+ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
+ :if=/usr/local/libexec/ifhp:\
+ :vf=/usr/local/libexec/vfhp:\
+ :of=/usr/local/libexec/ofhp:
+
+#
+# rattan est connectée &agrave; rose; envoie les travaux pour rattan
+# &agrave; rose:
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
+
+#
+# bamboo est également connectée &agrave; rose:
+#
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:</programlisting>
+
+ <para>Ensuite, nous n'avons qu'&agrave; créer les
+ répertoires de file d'impression sur
+ <hostid>orchid</hostid>:</para>
+
+ <screen>&prompt.root; <userinput>mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput>
+&prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput>
+&prompt.root; <userinput>chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput></screen>
+
+ <para>Maintenant les utilisateurs d'<hostid>orchid</hostid>
+ peuvent imprimer sur <literal>rattan</literal> et
+ <literal>bamboo</literal>. Par exemple, si un utilisateur sur
+ <hostid>orchid</hostid> entrait:</para>
+
+ <screen>&prompt.user; <userinput>lpr -P bamboo -d <replaceable>sushi-review.dvi</replaceable></userinput></screen>
+
+ <para>le système <application>LPD</application> sur
+ <hostid>orchid</hostid> copierait le travail d'impression dans le
+ répertoire de file d'impression
+ <filename>/var/spool/lpd/bamboo</filename> et relèverait qu'il
+ s'agit d'un travail d'impression DVI. Dès que la machine
+ <hostid>rose</hostid> dispose d'assez de place dans son
+ répertoire de file d'impression, les
+ deux <application>LPD</application>
+ transfèrent le fichier &agrave; <hostid>rose</hostid>. Le
+ fichier reste en attente dans la file de <hostid>rose</hostid>
+ jusqu'&agrave; son impression. Il sera converti de DVI en
+ &postscript; (puisque <literal>bamboo</literal> est une imprimante
+ &postscript;) sur <hostid>rose</hostid>.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-network-net-if">
+ <title>Imprimantes avec des interfaces utilisant des flux
+ réseau</title>
+
+ <para>Bien souvent, lorsque vous achetez une carte d'interface
+ réseau pour une imprimante, vous avez le choix entre
+ deux versions: l'une qui émule un
+ gestionnaire d'impression (la version la plus onéreuse), ou
+ une autre qui ne vous permet que de lui envoyer des
+ données comme s'il s'agissait d'un port série ou
+ parallèle (c'est la version la moins chère). Cette
+ section vous indique comment utiliser cette seconde version moins
+ onéreuse. Pour la plus chère, lisez la section
+ précédente <link
+ linkend="printing-advanced-network-rm">Imprimantes
+ installées sur des machines distantes</link>.</para>
+
+ <para>Le format du fichier <filename>/etc/printcap</filename> vous
+ permet de préciser quelle interface série ou
+ parallèle vous souhaitez utiliser, et (si vous employez
+ une interface série) &agrave; quelle vitesse de
+ transmission, s'il faut employer le contrôle de flux, les
+ temporisations pour les tabulations, la conversion des sauts de
+ lignes, et plus encore. Mais il n'existe aucun moyen de
+ préciser une connexion &agrave; une imprimante qui
+ écoute sur un port TCP/IP ou un autre port réseau.</para>
+
+ <para>Pour envoyer des données &agrave; une imprimante mise
+ en réseau, il vous faut développer un programme
+ de communication qui puisse être appelé par les
+ filtres textes et de conversion. Voici un exemple: la procédure
+ <command>netprint</command> récupère toutes les données sur
+ l'entrée standard et les envoie &agrave; une imprimante
+ connectée au réseau. Nous précisons le nom de machine
+ de l'imprimante dans le premier paramètre et le
+ numéro de port auquel se connecter dans le
+ deuxième paramètre de <command>netprint</command>.
+ Notez qu'il ne gère que la communication unidirectionnelle
+ (dans le sens &os; vers imprimante); de nombreuses imprimantes
+ réseau supporte la communication bidirectionnelle, et
+ vous désirerez certainement en tirer parti (afin de
+ connaître le statut de l'imprimante, de comptabiliser
+ l'utilisation, etc.).</para>
+
+ <programlisting>#!/usr/bin/perl
+#
+# netprint - Filtre texte pour imprimante connectée au réseau
+# Fichier /usr/local/libexec/netprint
+#
+$#ARGV eq 1 || die "Usage: $0 &lt;printer-hostname&gt; &lt;port-number&gt;";
+
+$printer_host = $ARGV[0];
+$printer_port = $ARGV[1];
+
+require 'sys/socket.ph';
+
+($ignore, $ignore, $protocol) = getprotobyname('tcp');
+($ignore, $ignore, $ignore, $ignore, $address)
+ = gethostbyname($printer_host);
+
+$sockaddr = pack('S n a4 x8', &amp;AF_INET, $printer_port, $address);
+
+socket(PRINTER, &amp;PF_INET, &amp;SOCK_STREAM, $protocol)
+ || die "Can't create TCP/IP stream socket: $!";
+connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!";
+while (&lt;STDIN&gt;) { print PRINTER; }
+exit 0;</programlisting>
+
+ <para>Nous pouvons maintenant utiliser cette procédure avec
+ différents filtres. Supposons que nous ayons une
+ imprimante Diablo 750-N connectée au réseau. Elle
+ reçoit les données &agrave; imprimer sur le port
+ 5100. Le nom de machine de l'imprimante est
+ <hostid>scrivener</hostid>. Voici le filtre texte
+ pour cette imprimante:</para>
+
+ <programlisting>#!/bin/sh
+#
+# diablo-if-net - Filtre texte pour l'imprimante Diablo `scrivener' écoutant
+# le port 5100. Fichier /usr/local/libexec/diablo-if-net
+#
+exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100</programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2 id="printing-advanced-restricting">
+ <title>Restreindre l'utilisation de l'imprimante</title>
+
+ <indexterm>
+ <primary>imprimantes</primary>
+ <secondary>restreindre l'accès aux</secondary>
+ </indexterm>
+
+ <para>Cette section fournit des informations sur la restriction
+ de l'utilisation de l'imprimante. Le système <application>LPD</application>
+ vous permet de contrôler quels utilisateurs peuvent
+ accéder &agrave; une imprimante, tant localement
+ qu'&agrave; distance, s'il leur est autorisé d'imprimer
+ en plusieurs exemplaires, quelles sont les tailles maximales de leurs
+ travaux d'impression et des files d'impression.</para>
+
+ <sect3 id="printing-advanced-restricting-copies">
+ <title>Restreindre l'impression en plusieurs exemplaires</title>
+
+ <para>Le système <application>LPD</application> facilite l'impression de
+ plusieurs copies d'un même fichier par les
+ utilisateurs. Ils peuvent imprimer leur travail
+ avec <command>lpr -#5</command> (par exemple)
+ et obtenir cinq exemplaires de chaque fichier du travail
+ d'impression. Le fait de savoir s'il s'agit l&agrave; d'une
+ bonne idée vous appartient.</para>
+
+ <para>Si vous estimez que les copies multiples provoquent
+ charge et usure inutiles pour vos imprimantes, vous
+ pouvez désactiver l'option <option>-#</option> de
+ &man.lpr.1; en ajoutant le paramètre <literal>sc</literal>
+ au fichier <filename>/etc/printcap</filename>. Lorsque des
+ utilisateurs soumettront un travail d'impression avec l'option
+ <option>-#</option>, ils obtiendront cet affichage:</para>
+
+ <screen>lpr: multiple copies are not allowed</screen>
+
+ <para>Notez que si vous avez mis en &oelig;uvre l'accès
+ &agrave; une imprimante distante (voir la section
+ <link linkend="printing-advanced-network-rm">Imprimantes
+ installées sur des machines distantes</link>), il
+ faut que le paramètre <literal>sc</literal> soit
+ positionné sur les <filename>/etc/printcap</filename>
+ distants également, sinon vos utilisateurs auront
+ toujours la possibilité d'imprimer des copies multiples
+ en passant par une autre machine.</para>
+
+ <para>Voici un exemple. C'est le <filename>/etc/printcap</filename>
+ pour la machine <hostid>rose</hostid>. L'imprimante
+ <literal>rattan</literal> est plutôt robuste, et
+ autorisera donc les copies multiples, par contre l'imprimante
+ laser <literal>bamboo</literal> est quant &agrave; elle plus
+ délicate, nous interdiront donc les impressions multiples en ajoutant le
+ paramètre <literal>sc</literal>:</para>
+
+ <programlisting>#
+# /etc/printcap pour la machine rose - restreint les impressions en plusieurs exemplaires sur bamboo
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:sd=/var/spool/lpd/rattan:\
+ :lp=/dev/lpt0:\
+ :if=/usr/local/libexec/if-simple:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=/var/spool/lpd/bamboo:sc:\
+ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
+ :if=/usr/local/libexec/psif:\
+ :df=/usr/local/libexec/psdf:</programlisting>
+
+ <para>Maintenant, il nous faut également ajouter le
+ paramètre <literal>sc</literal> dans le fichier
+ <filename>/etc/printcap</filename> de <hostid>orchid</hostid>
+ (et tant que nous y sommes, désactivons les copies multiples
+ pour l'imprimante <literal>teak</literal>):</para>
+
+ <programlisting>#
+# /etc/printcap pour la machine orchid - pas d'impression en
+# plusieurs exemplaires pour
+# l'imprimante locale teak ou l'imprimante distante bamboo
+teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
+ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\
+ :if=/usr/local/libexec/ifhp:\
+ :vf=/usr/local/libexec/vfhp:\
+ :of=/usr/local/libexec/ofhp:
+
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc:</programlisting>
+
+ <para>En recourant au paramètre <literal>sc</literal>,
+ nous empêchons l'utilisation de <command>lpr -#</command>,
+ mais cela n'empêche toujours pas les utilisateurs de
+ lancer &man.lpr.1; &agrave; plusieurs reprises, ou de soumettre
+ le même fichier plusieurs fois en un seul travail, de
+ cette façon:</para>
+
+ <screen>&prompt.user; <userinput>lpr <replaceable>forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign</replaceable></userinput></screen>
+
+ <para>Il existe plusieurs moyens de prévenir ces abus (y
+ compris les ignorer) que vous êtes libres d'essayer.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-restricting-access">
+ <title>Restreindre l'accès aux imprimantes</title>
+
+ <para>Vous pouvez contrôler qui a le droit d'imprimer sur
+ quelles imprimantes en utilisant le mécanisme des
+ groupes &unix; et le paramètre <literal>rg</literal> dans
+ <filename>/etc/printcap</filename>. Placez simplement les
+ utilisateurs &agrave; qui vous voulez donner l'accès
+ &agrave; une imprimante dans un groupe, et précisez ce
+ groupe avec le paramètre <literal>rg</literal>.</para>
+
+ <para>Les utilisateurs n'appartenant pas au groupe
+ (<username>root</username> inclus) se verront gratifiés d'un
+
+ <errorname>lpr: Not a member of the restricted group</errorname>
+
+ s'ils essaient d'imprimer avec l'imprimante
+ contrôlée.</para>
+
+ <para>De même que pour le paramètre <literal>sc</literal>
+ (supprimer les exemplaires multiples), il vous faut activer <literal>rg</literal>
+ sur les machines distantes qui eux aussi ont
+ accès &agrave; vos imprimantes, si vous estimez que
+ c'est approprié (voir la section <link
+ linkend="printing-advanced-network-rm">Imprimantes
+ installées sur des machines distantes</link>).</para>
+
+ <para>Dans notre exemple, nous allons permettre l'accès
+ &agrave; <literal>rattan</literal> &agrave; quiconque, mais
+ seuls les membres du groupe <groupname>artists</groupname>
+ pourront utiliser <literal>bamboo</literal>. Voici l'habituel
+ <filename>/etc/printcap</filename> pour la machine
+ <hostid>rose</hostid>:</para>
+
+ <programlisting>#
+# /etc/printcap pour la machine rose - restreint au groupe pour bamboo
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:sd=/var/spool/lpd/rattan:\
+ :lp=/dev/lpt0:\
+ :if=/usr/local/libexec/if-simple:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\
+ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
+ :if=/usr/local/libexec/psif:\
+ :df=/usr/local/libexec/psdf:</programlisting>
+
+ <para>Ne nous préoccupons pas de l'autre fichier
+ <filename>/etc/printcap</filename> (pour la machine
+ <hostid>orchid</hostid>). Bien entendu, n'importe qui sur
+ <hostid>orchid</hostid> peut imprimer avec
+ <literal>bamboo</literal>. Selon le cas, nous pourrons autoriser
+ que certains utilisateurs sur <hostid>orchid</hostid>, et
+ leur donner accès &agrave;
+ l'imprimante. Ou non.</para>
+
+ <note>
+ <para>Il ne peut exister qu'un seul groupe de restriction par
+ imprimante.</para>
+ </note>
+ </sect3>
+
+ <sect3 id="printing-advanced-restricting-sizes">
+ <title>Contrôler la taille des travaux d'impression</title>
+
+ <indexterm><primary>travaux d'impression</primary></indexterm>
+
+ <para>Si beaucoup de vos utilisateurs accèdent aux
+ imprimantes, vous aurez sans doute besoin de fixer une
+ limite supérieure &agrave; la taille des fichiers qu'ils
+ peuvent soumettre &agrave; l'impression. Après
+ tout, le système de fichiers hébergeant les
+ répertoires de file d'impression ne peut offrir
+ que l'espace libre dont il dispose, et vous devez
+ également vous assurer que de la place existe pour
+ les travaux d'impression des autres utilisateurs.</para>
+
+ <indexterm>
+ <primary>travaux d'impression</primary>
+ <secondary>contrôle</secondary>
+ </indexterm>
+
+ <para><application>LPD</application> vous permet de fixer la
+ taille maximale en octets qu'un fichier d'un travail
+ d'impression peut atteindre avec le paramètre
+ <literal>mx</literal>. Les unités sont exprimées
+ en blocs de <literal>BUFSIZ</literal>, valant 1024 octets. Si
+ vous donnez la valeur 0 &agrave; ce paramètre, la
+ taille ne sera pas du tout limitée; en revanche, si
+ aucun paramètre <literal>mx</literal> n'est
+ défini, alors une limite par défaut de
+ 1000 blocs sera utilisée.</para>
+
+ <note>
+ <para>La limite s'applique aux <emphasis>fichiers</emphasis> dans
+ un travail d'impression, et <emphasis>non pas</emphasis> &agrave;
+ la taille totale du travail d'impression.</para>
+ </note>
+
+ <para><application>LPD</application> ne refusera pas un fichier
+ dont la taille excède la limite que vous fixez pour
+ une imprimante. Au lieu de cela, il placera les octets
+ du fichier dans la file jusqu'&agrave; ce que la limite soit
+ atteinte, puis imprimera. Les octets supplémentaires
+ seront ignorés. S'il s'agit l&agrave; d'un comportement
+ approprié est un choix qui vous appartient.</para>
+
+ <para>Ajoutons des limites pour nos imprimantes d'exemple,
+ <literal>rattan</literal> et <literal>bamboo</literal>. Puisque
+ les fichiers &postscript; des utilisateurs du groupe <groupname>artists</groupname> ont tendance &agrave;
+ être volumineux, nous allons les limiter &agrave; cinq
+ mégaoctets. Nous ne fixerons aucune limite pour l'imprimante
+ texte:</para>
+
+ <programlisting>#
+# /etc/printcap pour la machine rose
+#
+
+#
+# Pas de limite sur la taille des travaux:
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:mx#0:sd=/var/spool/lpd/rattan:\
+ :lp=/dev/lpt0:\
+ :if=/usr/local/libexec/if-simple:
+
+#
+# Limite de cinq mégaoctets:
+#
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
+ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
+ :if=/usr/local/libexec/psif:\
+ :df=/usr/local/libexec/psdf:</programlisting>
+
+
+ <para>L&agrave; encore, les limites ne s'appliquent qu'aux
+ utilisateurs locaux. Si vous avez mis en place un accès
+ distant &agrave; vos imprimantes, les utilisateurs distants ne
+ seront pas contraints par ces limites. Il vous faudra
+ positionner le paramètre <literal>mx</literal> dans les
+ fichiers
+ <filename>/etc/printcap</filename> distants également. Lisez
+ la section <link linkend="printing-advanced-network-rm">Imprimantes
+ installées sur des machines distantes</link> pour
+ obtenir plus d'informations sur l'impression &agrave;
+ distance.</para>
+
+ <para>Il existe une autre manière spécifique pour
+ limiter la taille des travaux d'impression sur les imprimantes
+ &agrave; distance; lisez la section <link
+ linkend="printing-advanced-restricting-remote">Restreindre les
+ impressions &agrave; distance</link>.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-restricting-remote">
+ <title>Restreindre les impressions &agrave; distance</title>
+
+ <para>Le gestionnaire d'impression
+ <application>LPD</application> propose plusieurs moyens de
+ restreindre les travaux d'impression soumis depuis des
+ machines distants:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Restrictions en fonction des machines</term>
+
+ <listitem>
+ <para>Vous pouvez contrôler de quelles machines
+ distantes les requêtes seront acceptées par
+ un <application>LPD</application> local avec les fichiers
+ <filename>/etc/hosts.equiv</filename> et
+ <filename>/etc/hosts.lpd</filename>.
+ <application>LPD</application> vérifie qu'une
+ requête entrante provient d'une machine listée
+ dans l'un de ces deux fichiers. Si ce n'est pas le cas,
+ <application>LPD</application> refuse la requête.</para>
+
+ <para>Le format de ces fichiers est simple: un nom de machine
+ par ligne. Notez que <filename>/etc/hosts.equiv</filename>
+ est également utilisé par le protocole
+ &man.ruserok.3;, et qu'il a un impact sur des programmes
+ comme &man.rsh.1; et &man.rcp.1;, aussi soyez prudent.</para>
+
+ <para>Par exemple, voici le fichier
+ <filename>/etc/hosts.lpd</filename> présent sur la
+ machine
+ <hostid>rose</hostid>:</para>
+
+ <programlisting>orchid
+violet
+madrigal.fishbaum.de</programlisting>
+
+ <para>Cela signifie que <hostid>rose</hostid> accepte les
+ requêtes provenant des machines
+ <hostid>orchid</hostid>, <hostid>violet</hostid> et
+ <hostid role="fqdn">madrigal.fishbaum.de</hostid>. Si une
+ quelconque autre machine tente d'accéder au
+ <application>LPD</application> de <hostid>rose</hostid>,
+ le travail d'impression sera refusé.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Restrictions sur la taille</term>
+
+ <listitem>
+ <para>Vous pouvez contrôler combien d'espace doit
+ demeurer libre sur le système de fichiers où
+ se trouve un répertoire de file d'impression.
+ Créez un fichier nommé
+ <filename>minfree</filename> dans le répertoire de
+ file d'impression pour l'imprimante locale.
+ Placez dans ce fichier un nombre représentant combien
+ de blocs disques (de 512 octets) d'espace libre il
+ doit rester pour qu'un travail d'impression soit
+ accepté.</para>
+
+ <para>Cela vous permet de vous assurer que des utilisateurs
+ distants ne rempliront pas votre système de
+ fichiers. Vous pouvez également vous en servir pour
+ accorder une certaine priorité aux utilisateurs
+ locaux: ils pourront placer des travaux d'impression dans
+ la file bien après que l'espace libre soit tombé
+ sous le seuil indiqué dans le fichier
+ <filename>minfree</filename>.</para>
+
+ <para>Par exemple, ajoutons un fichier
+ <filename>minfree</filename> pour l'imprimante
+ <literal>bamboo</literal>. Nous examinons
+ <filename>/etc/printcap</filename> pour trouver le
+ répertoire de file d'impression pour cette
+ imprimante; voici l'entrée concernant
+ <literal>bamboo</literal>:</para>
+
+ <programlisting>bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
+ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:mx#5000:\
+ :if=/usr/local/libexec/psif:\
+ :df=/usr/local/libexec/psdf:</programlisting>
+
+ <para>Le répertoire de file d'impression est
+ précisé par le paramètre
+ <literal>sd</literal>. Nous placerons &agrave; trois
+ méga-octets (soit 6144 blocs disque) la limite
+ d'espace libre devant exister sur le système de
+ fichiers pour que <application>LPD</application> accepte
+ les travaux d'impression distants:</para>
+
+ <screen>&prompt.root; <userinput>echo 6144 &gt; /var/spool/lpd/bamboo/minfree
+ </userinput></screen>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Restrictions sur l'utilisateur</term>
+
+ <listitem>
+ <para>Vous pouvez contrôler quels utilisateurs distants
+ ont le droit d'imprimer sur les imprimantes locales en
+ positionnant le paramètre <literal>rs</literal>
+ dans <filename>/etc/printcap</filename>. Lorsque
+ <literal>rs</literal> est présent dans
+ l'entrée d'une imprimante connectée
+ localement, <application>LPD</application> acceptera les
+ travaux d'impressions de machines distantes
+ <emphasis>si</emphasis> l'utilisateur soumettant le travail
+ possède également un compte sous le
+ même nom sur la machine locale. Sinon,
+ <application>LPD</application> refusera le travail
+ d'impression.</para>
+
+ <para>Ce paramètre se révèle
+ particulièrement utile dans un environnement
+ où (par exemple) existent plusieurs services
+ qui partagent un réseau, et que des utilisateurs
+ débordent les frontières de ces services. En
+ leur donnant des comptes sur vos systèmes, vous
+ leur permettez d'utiliser vos imprimantes depuis les
+ systèmes de leur propre service. Si vous
+ préférez les autoriser &agrave; n'utiliser
+ <emphasis>que</emphasis> vos imprimantes et pas les
+ autres ressources de l'ordinateur, alors vous pouvez leur
+ attribuer des comptes <quote>bloqués</quote>, sans
+ répertoire de connexion et avec un interpréteur de
+ commandes
+ inutilisable comme <filename>/usr/bin/false</filename>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+ </sect2>
+
+ <sect2 id="printing-advanced-acct">
+ <title>Comptabiliser l'utilisation de l'imprimante</title>
+
+ <indexterm>
+ <primary>comptabiliser l'utilisation</primary>
+ <secondary>imprimante</secondary>
+ </indexterm>
+
+ <para>Donc vous voulez faire payer vos impressions. Et pourquoi pas?
+ Le papier et l'encre coûtent de l'argent. Et puis, il y a les
+ coûts de maintenance&mdash;les imprimantes sont constituées
+ de pièces mobiles et ont tendance &agrave; tomber en panne.
+ Vous avez étudié vos imprimantes, vos modes
+ d'utilisation et factures de maintenance, et avez abouti &agrave;
+ un coût par page (ou par pied, par mètre, ou
+ par ce que vous voulez). Maintenant, comment commencer &agrave;
+ comptabiliser les impressions, dans les faits?</para>
+
+ <para>Eh bien, la mauvaise nouvelle est que le
+ gestionnaire d'impression <application>LPD</application> ne vous aide
+ pas beaucoup dans ce domaine. La comptabilisation dépend
+ fortement du type d'imprimante que vous employez, des formats
+ que vous imprimez et de <emphasis>vos</emphasis> besoins pour ce
+ qui est de faire payer l'utilisation de l'imprimante.</para>
+
+ <para>Pour mettre en &oelig;uvre la comptabilisation, il vous faut
+ modifier le filtre texte de l'imprimante (pour faire payer les
+ travaux d'impression de texte brut) et ses filtres de conversion
+ (pour faire payer les autres formats de fichiers), pour compter les
+ pages ou demander &agrave; l'imprimante combien elle en a
+ imprimées. Vous ne pouvez pas vous en tirer en
+ utilisant le filtre de sortie simple, puisqu'il ne peut pas
+ gérer la comptabilisation. Voir la section <link
+ linkend="printing-advanced-filter-intro">Les filtres</link>.</para>
+
+ <para>En général, il existe deux façons de
+ procéder &agrave; la comptabilisation:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>La comptabilisation <emphasis>périodique</emphasis>
+ est la plus habituelle, probablement parce que la plus
+ facile. Chaque fois que quelqu'un imprime un travail, le
+ filtre enregistre l'utilisateur, la machine et le nombre de
+ pages dans un fichier de comptabilisation. Tous les mois,
+ semestres, années ou toute autre échéance que vous
+ désirez, vous récupérez les fichiers de
+ comptabilisation des diverses imprimantes, établissez
+ les pages imprimées par les utilisateurs, et faites
+ payer l'utilisation. Purgez ensuite tous les fichiers de
+ comptabilisation, pour commencer &agrave; zéro la nouvelle
+ période.</para>
+ </listitem>
+
+ <listitem>
+ <para>La comptabilisation <emphasis>&agrave; la volée</emphasis>
+ est moins répandue, peut-être parce qu'elle
+ s'avère plus difficile. Cette méthode laisse
+ les filtres s'occuper de taxer les utilisateurs pour les
+ impressions dès qu'ils utilisent les imprimantes. Tout
+ comme les quotas disques, la comptabilisation est
+ immédiate. Vous pouvez empêcher les utilisateurs
+ d'imprimer quand leur compte est dans le rouge, et pourriez
+ leur fournir un moyen de vérifier et ajuster leurs
+ <quote>quotas d'impression</quote>. Cependant, cette
+ méthode nécessite la mise en oeuvre d'une base de
+ données afin de tracer les utilisateurs et leurs
+ quotas.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Le gestionnaire d'impression
+ <application>LPD</application> gère les deux méthodes
+ facilement: puisque vous devez fournir les filtres (enfin, la
+ plupart du temps), vous devez également fournir le code
+ de comptabilisation. Mais il y a un bon côté: vous
+ disposez d'une énorme flexibilité dans vos
+ méthodes de comptabilisation. Par exemple, vous avez le
+ choix entre les comptabilisations périodique et &agrave; la
+ volée. Vous avez le choix des informations &agrave; tracer: noms
+ d'utilisateurs, noms de machines, types des travaux
+ d'impression, pages imprimées, surface de papier
+ utilisée, durée d'impression du travail, etc. Et
+ vous le faites en modifiant les filtres afin d'enregistrer
+ ces informations.</para>
+
+ <sect3>
+ <title>Comptabilisation rapide et simplifiée des impressions</title>
+
+ <para>Deux programmes sont livrés avec &os; qui vous
+ permettent de mettre en place une comptabilisation
+ périodique simple immédiatement. Il s'agit du
+ filtre texte <command>lpf</command>, détaillé dans
+ la section <link linkend="printing-advanced-lpf">lpf: un
+ filtre texte</link>, et de &man.pac.8;, un programme qui
+ rassemble et fait le total des entrées contenues dans des
+ fichiers de comptabilisation d'impressions.</para>
+
+ <para>Comme indiqué dans la section sur les filtres (<link
+ linkend="printing-advanced-filters">Fonctionnement des filtres</link>),
+ <application>LPD</application> lance les filtres texte et de
+ conversion avec le nom du fichier de comptabilisation &agrave;
+ employer fourni en argument. Les filtres peuvent
+ utiliser ce paramètre pour savoir où écrire
+ un enregistrement de comptabilisation. Le nom de ce fichier provient du
+ paramètre <literal>af</literal> dans
+ <filename>/etc/printcap</filename>, et si le chemin donné
+ n'est pas absolu, alors c'est un chemin d'accès relatif
+ au répertoire de file d'impression.</para>
+
+ <para><application>LPD</application> lance <command>lpf</command>
+ avec les paramètres de largeur et hauteur de page (qui
+ correspondent aux paramètres <literal>pw</literal> et
+ <literal>pl</literal>). Le filtre <command>lpf</command> les utilise
+ pour déterminer combien de papier sera consommé.
+ Après avoir envoyé le fichier &agrave;
+ l'imprimante, il enregistre ensuite une entrée dans le
+ fichier de comptabilisation. Les entrées ressemblent
+ &agrave; ceci:</para>
+
+ <programlisting>2.00 rose:andy
+3.00 rose:kelly
+3.00 orchid:mary
+5.00 orchid:mary
+2.00 orchid:zhang</programlisting>
+
+ <para>Vous devriez utiliser un fichier de comptabilisation
+ séparé pour chaque imprimante, <command>lpf</command>
+ ne disposant pas de mécanisme de verrouillage
+ des fichiers, deux <command>lpf</command> pourraient
+ corrompre leurs entrées respectives s'ils essayaient
+ d'écrire dans le même fichier en même temps.
+ Une manière aisée de s'assurer d'un fichier de
+ comptabilisation séparé pour chaque imprimante est de
+ recourir au paramètre <literal>af=acct</literal> dans
+ <filename>/etc/printcap</filename>. Dès lors, un
+ fichier de comptabilisation, nommé
+ <filename>acct</filename>, sera placé dans le
+ répertoire de file d'impression de chaque imprimante.</para>
+
+ <para>Lorsque vous serez prêts &agrave; faire payer les
+ utilisateurs pour leurs impressions, lancez le programme
+ &man.pac.8;. Placez-vous simplement dans le répertoire
+ de file d'impression de l'imprimante pour laquelle vous
+ voulez collecter les informations, et tapez
+ <command>pac</command>. Vous obtiendrez un récapitulatif
+ en dollars ressemblant &agrave; ceci:</para>
+
+ <screen> Login pages/feet runs price
+orchid:kelly 5.00 1 $ 0.10
+orchid:mary 31.00 3 $ 0.62
+orchid:zhang 9.00 1 $ 0.18
+rose:andy 2.00 1 $ 0.04
+rose:kelly 177.00 104 $ 3.54
+rose:mary 87.00 32 $ 1.74
+rose:root 26.00 12 $ 0.52
+
+total 337.00 154 $ 6.74</screen>
+
+ <para>Voici les arguments attendus par &man.pac.8;:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-P<replaceable>imprimante</replaceable>
+ </option></term>
+
+ <listitem>
+ <para>Pour quelle <replaceable>imprimante</replaceable>
+ effectuer un récapitulatif. Cette option ne
+ fonctionne que si un chemin d'accès absolu est donné
+ dans le paramètre <literal>af</literal> de
+ <filename>/etc/printcap</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-c</option></term>
+
+ <listitem>
+ <para>Trier selon le coût plutôt
+ qu'alphabétiquement par nom d'utilisateur.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-m</option></term>
+
+ <listitem>
+ <para>Ignorer le nom de la machine dans les fichiers de
+ comptabilisation. Avec cette option, l'utilisateur
+ <username>smith</username> sur la machine
+ <hostid>alpha</hostid> est le même que l'utilisateur
+ <username>smith</username> sur la machine
+ <hostid>gamma</hostid>. Sans elle, ils représentent
+ des utilisateurs distincts.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-p<replaceable>prix</replaceable></option></term>
+
+ <listitem>
+ <para>Calculer le coût en comptant un
+ <replaceable>prix</replaceable> en dollars par page ou par pied
+ au lieu du prix indiqué par le paramètre
+ <literal>pc</literal> dans <filename>/etc/printcap</filename>,
+ ou deux cents (la valeur par défaut). Vous pouvez
+ préciser le <replaceable>prix</replaceable> en nombre
+ &agrave; virgule flottante.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-r</option></term>
+
+ <listitem>
+ <para>Inverser l'ordre du tri.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-s</option></term>
+
+ <listitem>
+ <para>Créer un fichier de rapport et
+ tronquer le fichier de comptabilisation.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>nom</replaceable>
+ <replaceable>&hellip;</replaceable></term>
+
+ <listitem>
+ <para>N'imprimer des statistiques que pour les utilisateurs
+ dont les <replaceable>nom</replaceable>s sont
+ donnés.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Dans le récapitulatif produit par défaut par
+ &man.pac.8;, vous pouvez lire le nombre de pages imprimées
+ par chaque utilisateur depuis les différentes machines. Si, sur votre
+ site, la machine n'a pas d'importance (parce que les utilisateurs
+ peuvent utiliser n'importe quelle machine), lancez
+ <command>pac -m</command>, afin de produire le récapitulatif
+ ci-dessous:</para>
+
+ <screen> Login pages/feet runs price
+andy 2.00 1 $ 0.04
+kelly 182.00 105 $ 3.64
+mary 118.00 35 $ 2.36
+root 26.00 12 $ 0.52
+zhang 9.00 1 $ 0.18
+
+total 337.00 154 $ 6.74</screen>
+
+ <para>Afin de calculer le montant dû en dollars, &man.pac.8;
+ utilise le paramètre <literal>pc</literal> de
+ <filename>/etc/printcap</filename> (200 par défaut,
+ c'est &agrave; dire 2 cents par page). Précisez avec
+ ce paramètre le prix par page ou par pied, exprimé
+ en centièmes de cents, que vous voulez imputer aux
+ impressions. Vous pouvez spécifier cette valeur lorsque vous
+ lancez &man.pac.8; avec l'option <option>-p</option>. Cependant,
+ avec cette option, les unités sont exprimées en
+ dollars, et non en centièmes de cents. Par exemple,</para>
+
+ <screen>&prompt.root; <userinput>pac -p1.50</userinput></screen>
+
+ <para>fait en sorte que chaque page coûte un dollar et cinquante
+ cents. Vous pouvez vraiment faire des bénéfices
+ en utilisant cette option.</para>
+
+ <para>Enfin, lancer <command>pac -s</command> enregistrera les
+ informations du récapitulatif dans un fichier, dont le
+ nom sera le même que le fichier de comptabilisation de
+ l'imprimante mais avec le suffixe <literal>_sum</literal>. Il
+ procède alors &agrave; la troncature du fichier de
+ comptabilisation. Lorsque vous exécutez &man.pac.8;
+ &agrave; nouveau, il relit le fichier récapitulatif pour
+ établir les totaux de départ, puis ajoute les
+ informations du fichier de comptabilisation normal.</para>
+ </sect3>
+
+ <sect3>
+ <title>Comment compter les pages imprimées?</title>
+
+ <para>Afin de réaliser une comptabilisation précise et cela
+ même &agrave; distance, vous devez pouvoir déterminer
+ combien un travail d'impression consomme de papier. C'est le
+ problème principal de la comptabilisation des
+ impressions.</para>
+
+ <para>Pour du texte brut, ce problème n'est pas
+ compliqué &agrave; résoudre: vous comptez combien
+ un travail d'impression comporte de lignes et comparez avec
+ le nombre de lignes par page que gère votre imprimante.
+ N'oubliez pas de tenir compte des retours arrière
+ dans le fichier, qui superposent les lignes, ou des longues
+ lignes qui s'étendent sur une ou plusieurs lignes
+ physiques supplémentaires.</para>
+
+ <para>Le filtre texte <command>lpf</command> (présenté
+ &agrave; la section <link linkend="printing-advanced-lpf">lpf: un
+ filtre texte</link>) prend ces éléments en
+ considération lorsqu'il effectue la comptabilisation. Si
+ vous écrivez un filtre texte qui doit effectuer une
+ comptabilisation, vous pouvez vous inspirer du code source de
+ <command>lpf</command>.</para>
+
+ <para>Mais comment gérer les autres formats?</para>
+
+ <para>Eh bien, pour la conversion DVI-vers-LaserJet ou
+ DVI-vers-&postscript;, vous pouvez faire analyser les messages de sortie
+ de <command>dvilj</command> ou <command>dvips</command> par
+ votre filtre et regarder combien de pages ont été
+ converties. Vous devriez pouvoir procéder de
+ manière identique avec d'autres formats de
+ fichiers et programmes de conversion.</para>
+
+ <para>Mais ces méthodes connaissent un défaut: il se
+ peut que l'imprimante n'imprime pas toutes ces pages. Par exemple,
+ un bourrage peut se produire, l'imprimante peut arriver &agrave; cours d'encre, ou
+ exploser &mdash; et l'utilisateur serait tout de même
+ débité.</para>
+
+ <para>Alors, que pouvez-vous faire?</para>
+
+ <para>Il n'existe qu'une seule méthode
+ <emphasis>sûre</emphasis> pour procéder &agrave; une
+ comptabilisation <emphasis>précise</emphasis>. Prenez
+ une imprimante qui sache dire combien de papier elle utilise, et
+ reliez-la par un câble série ou une connection
+ réseau. Presque toutes les imprimantes &postscript;
+ gèrent cela. D'autres types et modèles
+ également (les imprimantes laser réseau Imagen,
+ par exemple). Modifiez les filtres pour ces imprimantes afin
+ d'obtenir la consommation de pages après chaque travail
+ d'impression et faites en sorte qu'elles enregistrent des
+ informations de comptabilisation basées sur cette
+ <emphasis>seule</emphasis> valeur. Nul besoin de compter
+ les lignes ou d'une analyse de fichier susceptible d'être
+ erronée.</para>
+
+ <para>Bien entendu, vous pouvez toujours être
+ généreux et rendre toutes les impressions
+ gratuites.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="printing-using">
+ <title>Using Printers ** Traduction en Cours **</title>
+ <para></para>
+
+ <sect2 id="printing-lpr">
+ <title>Printing Jobs</title>
+
+ <para></para>
+ </sect2>
+
+ <sect2 id="printing-lpq">
+ <title>Checking Jobs</title>
+
+ <para></para>
+ </sect2>
+
+ <sect2 id="printing-lprm">
+ <title>Removing Jobs</title>
+
+ <para></para>
+ </sect2>
+
+ <sect2 id="printing-lpr-options">
+ <title>Beyond Plain Text: Printing Options</title>
+
+ <sect3 id="printing-lpr-options-format">
+ <title>Formatting and Conversion Options</title>
+
+ <para></para>
+ </sect3>
+
+ <sect3 id="printing-lpr-options-job-handling">
+ <title>Job Handling Options</title>
+
+ <para></para>
+ </sect3>
+
+ <sect3 id="printing-lpr-options-misc">
+ <title>Header Page Options</title>
+
+ <para></para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="printing-lpc">
+ <title>Administering Printers</title>
+
+ <para></para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="printing-lpd-alternatives">
+ <title>Alternatives to the Standard Spooler ** Traduction en Cours **</title>
+ <para></para>
+ </sect1>
+
+ <sect1 id="printing-troubleshooting">
+ <title>Troubleshooting ** Traduction en Cours **</title>
+ <para></para>
+ </sect1>
+</chapter>