diff options
Diffstat (limited to 'fr_FR.ISO8859-1/books/handbook/printing/chapter.sgml')
-rwxr-xr-x | fr_FR.ISO8859-1/books/handbook/printing/chapter.sgml | 5375 |
1 files changed, 0 insertions, 5375 deletions
diff --git a/fr_FR.ISO8859-1/books/handbook/printing/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/printing/chapter.sgml deleted file mode 100755 index 0767427ef8..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/printing/chapter.sgml +++ /dev/null @@ -1,5375 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: n.nn ---> - -<chapter id="printing"> - <title>Imprimer</title> - - <para><emphasis>Contribution de &a.kelly;<!-- <br> -->30 Septembre - 1995</emphasis></para> - &trans.a.haby; - - <para>Pour imprimer avec FreeBSD, vous devrez configurer l'utilisation de - vos imprimantes avec le gestionnaire de queues d'impression de - Berkeley, connu aussi sous le nom de gestionnaire d'impression - (“spooling system”) LPD (“Line Printer - Daemon”). C'est le gestionnaire d'impression standard de BSD. - Cette section décrit le gestionnaire d'impression LPD - souvent - abrégé en LPD.</para> - - <para>Si vous connaissez déjà LPD ou un autre gestionnaire de files - d'impression, vous pouvez passer directement à la section - <link linkend="printing-intro-setup">Configurer le gestionnaire - d'impression</link>.</para> - - <sect1 id="printing-intro-spooler"> - <title>Que fait le gestionnaire d'impression ?</title> - - <para>LPD contrôle tout ce qui concerne les imprimantes. Il assume - un certain nombre de fonctions:</para> - - <itemizedlist> - - <listitem> - <para>Il contrôle l'accès aux imprimantes locales et aux imprimantes - connectées à d'autres machines du réseau.</para> - </listitem> - - <listitem> - <para>Il permet aux utilisateurs de soumettre des fichiers à - l'impression; Ces demandes d'impression sont appelées - <emphasis>travaux</emphasis>.</para> - </listitem> - - <listitem> - <para>Il empêche l'accès simultané de plusieurs utilisateurs à une - même imprimante en gérant une <emphasis>queue</emphasis> pour - chaque imprimante.</para> - </listitem> - - <listitem> - <para>Il peut imprimer <emphasis>des pages d'en-tête</emphasis> - (appelées aussi <emphasis>bannières</emphasis> ou pages - “burst” (qui sautent aux yeux) de façon à ce que - les utilisateurs retrouvent facilement leurs travaux au milieu - d'une pile de documents imprimés.</para> - </listitem> - - <listitem> - <para>Il gère les paramètres de communication pour les imprimantes - raccordées sur un port série.</para> - </listitem> - - <listitem> - <para>Il peut envoyer des travaux au gestionnaire LPD d'une autre - machine du réseau.</para> - </listitem> - - <listitem> - <para>Il peut exécuter des filtres pour formater les impressions - en fonction des possibilités et du langage compris par les - différentes imprimantes.</para> - </listitem> - - <listitem> - <para>Il peut comptabiliser l'utilisation d'une imprimante.</para> - </listitem> - - </itemizedlist> - - <para>Avec un fichier de configuration et en fournissant les programmes - de filtrage spécifiques, vous pouvez confier à LPD tout ou une partie - de ces tâches, pour une large gamme de matériels d'impression.</para> - </sect1> - - <sect1 id="printing-intro-why"> - <title>Pourquoi faut-il utiliser le gestionnaire d'impression ?</title> - - <para>Si vous êtes l'unique utilisateur de votre système, vous pouvez - vous demander pourquoi vous devriez vous compliquer la vie en - utilisant le gestionnaire d'impression, alors que vous n'avez pas - besoin de contrôle d'accès, de pages d'en-tête ou de comptabilité. - Bien qu'il soit possible d'accéder directement à l'imprimante, il - vaut mieux passer malgré tout par le gestionnaire d'impression parce - que:</para> - - <itemizedlist> - - <listitem> - <para>LPD imprime les travaux en tâches de fond; vous n'avez pas - besoin d'attendre que l'imprimante ait reçu vos données.</para> - </listitem> - - <listitem> - <para>LPD peut appliquer des filtres aux travaux pour ajouter des - en-têtes avec la date et l'heure ou convertir des fichiers d'un - format particulier (comme les fichiers DVI de TeX) vers un format - compréhensible par l'imprimante. Vous n'avez pas besoin de faire - tout cela à la main.</para> - </listitem> - - <listitem> - <para>De nombreux logiciels libres ou commerciaux disposent d'une - fonctionnalité d'impression prévue pour utiliser le gestionnaire - d'impression. En installant le gestionnaire d'impression, vous - aurez moins de problèmes avec les logiciels que vous installerez - ensuite ou qui sont déjà sur votre système.</para> - </listitem> - - </itemizedlist> - - </sect1> - - <sect1 id="printing-intro-setup"> - <title>Configurer le gestionnaire d'impression</title> - - <para>Pour imprimer avec le gestionnaire d'impression, il vous faut - configurer et vos imprimantes et le logiciel LPD. Ce document décrit - les deux étapes de cette configuration:</para> - - <itemizedlist> - - <listitem> - <para>Lisez la section - <link linkend="printing-simple">Configuration simple d'une imprimante</link> - pour apprendre à connecter une imprimante, dire à LPD comment - communiquer avec et imprimer des fichiers texte.</para> - </listitem> - - <listitem> - <para>Lisez la section - <link linkend="printing-advanced">Configuration avancée d'une imprimante</link> - pour savoir comment imprimer - différents formats de fichiers, imprimer des pages d'en-tête, - imprimer via le réseau, contrôler l'accès aux imprimantes et - comptabiliser leur utilisation.</para> - </listitem> - - </itemizedlist> - - </sect1> - - <sect1 id="printing-simple"> - <title>Configuration simple d'une imprimante</title> - - <para>Cette section vous explique comment configurer l'imprimante et le - logiciel LPD pour pouvoir imprimer. Elle vous fournit les informations - de base:</para> - - <itemizedlist> - - <listitem> - <para>La section <link linkend="printing-hardware">Configuration du matériel</link> - vous donne des indications sur la - connexion de l'imprimante à votre ordinateur.</para> - </listitem> - - <listitem> - <para>La section <link linkend="printing-software">Configuration du logiciel</link> - vous explique comment renseigner le fichier - de configuration <filename>/etc/printcap</filename> de LPD.</para> - </listitem> - - </itemizedlist> - - <para>Si vous installez une imprimante qui utilise une protocole réseau - pour recevoir les données à imprimer et non une imprimante sur - l'interface série ou parallèle, reportez-vous à la section - <link linkend="printing-advanced-network-net-if">Imprimantes avec une interface - réseau</link>.</para> - - <para>Bien que cette section soit intitulée “Configuration simple - d'une imprimante”, elle est en fait assez complexe. Arriver à faire - fonctionner l'imprimante avec votre ordinateur et le gestionnaire - d'impression LPD est le plus difficile. Les options avancées comme les - pages d'en-tête et la comptabilité sont faciles à mettre en place une - fois que l'impression fonctionne.</para> - - <sect2 id="printing-hardware"> - <title>Configuration du matériel</title> - - <para>Cette section vous détaille les différentes façons de - connecter une imprimante à votre PC. Elle traite des types de - ports et de câbles et de la manière de configurer votre noyau - pour que FreeBSD puisse communiquer avec l'imprimante.</para> - - <para>Si votre imprimante est déjà connectée et que vous pouvez - imprimer avec un autre système d'exploitation, vous pouvez - peut-être passer directement à la section - <link linkend="printing-software">Configuration du logiciel</link>.</para> - - <sect3 id="printing-ports"> - <title>Ports et Câbles</title> - - <para>Pratiquement toutes les imprimantes actuelles pour PC - supportent l'une ou l'autre interface suivante - - ou les deux:</para> - - <itemizedlist> - - <listitem> - <para>Les interfaces <emphasis>série</emphasis> utilisent un - des ports série de votre ordinateur pour envoyer des - données à l'imprimante. Les interfaces série sont - courantes dans l'industrie informatique et les câbles - existent prêts à l'emploi et sont faciles à réaliser - soi-même. Certaines interfaces série ont besoin de câbles - particuliers ou d'une configuration un peu complexe des - options de communication.</para> - </listitem> - - <listitem> - <para>Les interfaces <emphasis>parallèles</emphasis> utilisent - un port parallèle de votre ordinateur pour envoyer des - données à l'imprimante. Les interfaces parallèles sont - courantes sur le marché des PCs. Les câbles existent prêts à - l'emploi, mais sont plus difficiles à faire soi-même. Il - n'y a habituellement pas d'option de communication - particulière pour les interfaces parallèles, leur - configuration est donc extrêmement simple.</para> - - <para>Les interfaces parallèles sont parfois appelées - interfaces “Centronics”, du nom du type de - connecteur de l'imprimante.</para> - </listitem> - - </itemizedlist> - - <para>D'une façon générale, les interfaces série sont plus lentes - que les interfaces parallèles. Les interfaces parallèles ne - permettent normalement la communication que dans un seul sens - (de l'ordinateur vers l'imprimante) alors que la communication - est bi-directionnelle avec les interfaces série. De nombreux - ports parallèles récents peuvent aussi recevoir des données de - l'imprimante, mais seules quelques imprimantes savent renvoyer - des données à l'ordinateur. Et FreeBSD ne supporte pas la - communication parallèle bi-directionnelle.</para> - - <para>Normalement, vous n'avez besoin de communication - bi-directionnelle qu'avec les imprimantes qui parlent PostScript. - Les imprimantes PostScript peuvent être très bavardes. En fait, - les travaux PostScript sont des programmes envoyés à - l'imprimante; ils ne produisent pas nécessairement d'impression - et peuvent renvoyer directement leurs résultats à l'ordinateur. - PostScript utilise aussi la communication bi-directionnelle pour - avertir l'ordinateur de problèmes, d'erreurs dans le programme - PostScript ou d'un bourrage papier, par exemple. Cela peut être - très apprécié de vos utilisateurs. De plus, la façon la plus - efficace de gérer la comptabilité avec une imprimante PostScript - passe par un dialogue avec l'imprimante: vous lui demandez la - valeur de son compteur de pages (combien de pages elle a déjà - imprimées dans sa vie) puis envoyez le travail de l'utilisateur - et lui redemandez ensuite la valeur de son compteur de pages. - La différence entre les deux valeurs vous donne le nombre de - pages à facturer à l'utilisateur.</para> - - <para>Quelle interface devez-vous donc utiliser?</para> - - <itemizedlist> - - <listitem> - <para>Si vous avez besoin de la communication - bi-directionnelle, utilisez le port série. FreeBSD ne - supporte pas encore la communication bi-directionnelle sur - le port parallèle.</para> - </listitem> - - <listitem> - <para>Si vous n'avez pas besoin de la communication parallèle - et avez le choix entre le port série et le port parallèle, - préférez le port parallèle. Le port série reste alors - disponible pour d'autres périphériques - comme un - terminal ou un modem - et le port parallèle est la - plupart du temps plus rapide. Il est aussi plus facile à - configurer.</para> - </listitem> - - <listitem> - <para>En dernier lieu, utilisez ce qui fonctionne.</para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3 id="printing-parallel"> - <title>Ports parallèles</title> - - <para>Pour brancher l'imprimante sur l'interface parallèle, - reliez-la à l'ordinateur avec un câble Centronics. La - documentation de l'ordinateur, de l'imprimante, ou les deux, - devraient vous donner toutes les indications nécessaires.</para> - - <para>Rappelez-vous quel port parallèle vous avez utilisé. FreeBSD - connaît le premier port parallèle sous le nom - <filename>/dev/lpt0</filename>; le second comme - <filename>/dev/lpt1</filename>, et ainsi de suite.</para> - - </sect3> - - <sect3 id="printing-serial"> - <title>Ports série</title> - - <para>Pour brancher l'imprimante sur l'interface série, - reliez-la à l'ordinateur avec le câble série approprié. La - documentation de l'ordinateur, de l'imprimante, ou les deux, - devrait vous donner toutes les indications nécessaires.</para> - - <para>Si vous n'êtes pas certain de quel est “le câble série - approprié”, vous pouvez tester une des possibilités - suivantes:</para> - - <itemizedlist> - - <listitem> - <para>Un câble <emphasis>modem</emphasis> connecte directement - chaque broche d'une des extrémité de la liaison à la broche - correspondante de l'autre extrémité. On appelle aussi ce - type de câble “DTE-à-DCE”.</para> - </listitem> - - <listitem> - <para>Un câble “<emphasis>null-modem</emphasis>” - connecte certaines broches directement, en intervertit - d'autres (donnée émise vers donnée reçue) et en - court-circuite certaines à chaque extrémité. On appelle - aussi ce type de câble “DTE-à-DTE”.</para> - </listitem> - - <listitem> - <para>Un câble pour <emphasis>imprimante série</emphasis>, - dont ont besoin certaines imprimantes non standard, est - semblable à un câble “null-modem” mais - transmet certains signaux broche à broche au lieu de les - court-circuiter.</para> - </listitem> - - </itemizedlist> - - <para>Vous devrez aussi définir les paramètres de communication de - l'imprimante, soit avec le panneau de contrôle frontal, soit par - l'intermédiaire de commutateurs DIP. Choisissez la vitesse en bps - (bits par seconde, on dit parfois <emphasis>vitesse en - bauds</emphasis>) la plus rapide que votre ordinateur et votre - imprimante acceptent tous les deux. Choisissez entre des données - 7 ou 8 bits, une parité paire, impaire ou pas de contrôle de - parité; et un ou deux bits de fin. Sélectionnez aussi le - protocole de contrôle de flux: soit aucun, soit XON/XOFF (appelé - aussi “en ligne” ou “logiciel”). Notez - bien ces paramètres pour l'étape suivante de configuration du - logiciel.</para> - - </sect3> - </sect2> - - <sect2 id="printing-software"> - <title>Configuration du logiciel</title> - - <para>Cette section explique comment configurer le logiciel pour - imprimer sous FreeBSD avec le gestionnaire d'impression LPD.</para> - - <para>Voici un résumé des étapes nécessaires:</para> - - <procedure> - <step> - <para>Recompiler votre noyau au besoin pour le port sur lequel - vous connectez votre imprimante; la section - <link linkend="printing-kernel">Configuration du noyau</link> - vous dit ce que vous devez faire.</para> - </step> - <step> - <para>Définir le mode de communication du port parallèle, - si c'est celui que vous utilisez; la section <link - linkend="printing-parallel-port-mode">Définir le mode de - communication avec le port parallèle</link> vous - décrit cette étape en détails.</para> - </step> - - <step> - <para>Vérifier que le système d'exploitation peut envoyer des - données à l'imprimante; la section - <link linkend="printing-testing">Tester la communication avec - l'imprimante</link> vous donne - quelques indications pour cela.</para> - </step> - - <step> - <para>Configurer LPD pour cette imprimante en modifiant le - fichier <filename>/etc/printcap</filename>; la section <link - linkend="printing-printcap">Activer le gestionnaire d'impression : le - fichier <filename>/etc/printcap</filename></link> - vous explique comment.</para> - </step> - - </procedure> - - <sect3 - id="printing-kernel"> - <title>Configuration du noyau</title> - - <para>Le noyau du système d'exploitation est compilé pour - fonctionner avec une sélection de périphériques donnée. Les - interfaces série ou parallèle de l'imprimante en font partie. - En conséquence, il peut être nécessaire d'ajouter le suppport - d'un port série ou parallèle si votre noyau n'est pas déjà - configuré pour cela.</para> - - <para>Pour savoir si le noyau que vous utilisez supporte une interface - série, tapez:</para> - - <informalexample> - <screen>&prompt.root; <userinput>dmesg | grep sio<replaceable>N</replaceable></userinput></screen> - </informalexample> - <para>où <replaceable>N</replaceable> est le numéro - du port série, zéro ou plus. Si vous obtenez quelque chose qui - ressemble à:</para> - - <informalexample> - <screen>sio2 at 0x3e8-0x3ef irq 5 on isa - sio2: type 16550A</screen> - </informalexample> <para>alors le port est bien configuré dans le - noyau.</para> - - <para>Pour savoir si le noyau que vous utilisez supporte une interface - parallèle, tapez:</para> - - <informalexample> - <screen>&prompt.root; <userinput>dmesg | grep lpt<replaceable>N</replaceable></userinput></screen> - </informalexample> <para>où <replaceable>N</replaceable> est le numéro - du port parallèle, zéro ou plus. Si vous obtenez quelque chose qui - ressemble à:</para> - - <informalexample> - <screen>lpt0 at 0x378-0x37f on isa</screen> - </informalexample> <para>alors le port est bien configuré dans le - noyau.</para> - - <para>Vous devrez peut-être reconfigurer votre noyau pour que - le système d'exploitation reconnaisse et puisse utiliser le - port série ou parallèle que vous affectez à votre - imprimante.</para> - - <para>Pour ajouter le support d'un port série, reportez-vous - au chapitre <link linkend="kernelconfig">Configurer le noyau de - FreeBSD</link>. Pour ajouter le - support d'un port parallèle, reportez-vous au chapitre sur - la configuration du noyau <emphasis>et</emphasis> lisez la - section suivante.</para> - - <sect4 - id="printing-dev-ports"> - <title>Ajouter les entrées pour les ports - dans le répertoire <filename>/dev</filename></title> - - - <para>Même si le noyau supporte déjà les communications - sur le port série ou parallèle, il vous faut encore - une interface logicielle pour que les programmes - puissent envoyer et recevoir des données. C'est à cela - que servent les entrées du répertoire - <filename>/dev</filename>.</para> - - <para><emphasis>Pour ajouter une entrée pour un port au - répertoire <filename>/dev</filename>:</emphasis></para> - - <procedure> - - <step> - <para>Devenez super-utilisateur avec la commande <citerefentry> - <refentrytitle>su</refentrytitle></citerefentry>. - Entrez le mot de passe super-utilisateur quand on vous le - demande.</para> - </step> - - <step> - <para>Allez dans le répertoire <filename>/dev</filename>: - - <informalexample> - <screen>&prompt.root; cd /dev</screen> - </informalexample></para> - </step> - - <step> - <para>Tapez: - - <informalexample> - <screen>&prompt.root; <userinput>./MAKEDEV <replaceable>port</replaceable></userinput></screen> - </informalexample> où <replaceable>port</replaceable> est l'entrée (fichier spécial de périphérique) que vous voulez - créer. Utilisez <literal>lpt0</literal> pour le premier - port parallèle, <literal>lpt1</literal> pour le second, et - ainsi de suite; utilisez <literal>ttyd0</literal> pour le - premier port série, <literal>ttyd1</literal> - pour le second, etc...</para> - </step> - - <step> - <para>Tapez: - - <informalexample> - <screen>&prompt.root; <userinput>ls -l <replaceable>port</replaceable></userinput></screen> - </informalexample>pour vous assurer que l'entrée a bien - été créée.</para> - </step> - - </procedure> - - </sect4> - - <sect4 - id="printing-parallel-port-mode"> - <title>Définir le mode de communication avec le port - parallèle</title> - - <para>Si vous utilisez l'interface parallèle, vous pouvez - choisir que FreeBSD communique avec l'imprimante en - l'interrogeant régulièrement ou par interruptions.</para> - - - <itemizedlist> - - <listitem> - <para>La méthode - <emphasis>pilotée par interruptions</emphasis> est la - méthode par défaut du noyau GENERIC. Le système - d'exploitation utilise dans ce cas une ligne IRQ pour - savoir si l'imprimante est prête à recevoir des - données.</para> - </listitem> - - <listitem> - <para>La méthode - <emphasis>par interrogations</emphasis> demande au - système d'interroger à intervalles réguliers l'imprimante - pour savoir si elle peut accepter de nouvelles données. - Dès que la réponse est positive, le noyau lui envoie - de nouvelles données.</para> - </listitem> - - </itemizedlist> - - - <para>La méthode par interruptions est plus rapide mais mobilise - une ligne IRQ précieuse. Utilisez ce qui fonctionne.</para> - - <para>Vous pouvez définir le mode de communication de deux - façons: en configurant le noyau ou avec la commande - <citerefentry><refentrytitle>lptcontrol</refentrytitle></citerefentry>.</para> - - <para><emphasis>Pour définir le mode de communication à la - configuration du noyau:</emphasis></para> - - <procedure> - - <step> - <para>Editez votre fichier de configuration du noyau - et cherchez ou ajoutez l'entrée <literal>lpt0</literal>. - Si vous utilisez le second port parallèle, mettez - <literal>lpt1</literal> à la place, - <literal>lpt2</literal> pour le troisième port, et ainsi - de suite. - <itemizedlist> - - <listitem> - <para>Si vous voulez utiliser le mode par - interruptions, ajoutez l'indicateur - <literal>irq</literal>: - - <programlisting> - device lpt0 at isa? port? tty irq <replaceable>N</replaceable> vector lptintr - </programlisting>où <replaceable>N</replaceable> - est le numéro d'IRQ du port parallèle de votre - ordinateur.</para> - </listitem> - - <listitem> - <para>Si vous voulez le mode par interrogations, - ne mettez pas l'indicateur - <literal>irq</literal>: - - <programlisting> - device lpt0 at isa? port? tty vector lptintr - </programlisting></para> - </listitem> - - </itemizedlist> - </para> - </step> - - <step> - <para>Sauvegardez le fichier. Puis configurez, compilez et - installez le noyau, et redémarrez votre système. - Reportez-vous au chapitre - <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link> - pour plus de détails.</para> - </step> - - </procedure> - - <para><emphasis>Pour définir le mode de communication avec le - programme</emphasis> <citerefentry> - <refentrytitle>lptcontrol</refentrytitle></citerefentry>:</para> - - <procedure> - - <step> - <para>Tapez: - - <informalexample> - <screen>&prompt.root; <userinput>lptcontrol -i -u <replaceable>N</replaceable></userinput></screen> - </informalexample> pour utiliser le mode par interruptions - avec - <literal>lpt<replaceable>N</replaceable></literal>.</para> - </step> - - <step> - <para>Tapez: - - <informalexample> - <screen>&prompt.root; <userinput>lptcontrol -p -u <replaceable>N</replaceable></userinput></screen> - </informalexample> pour utiliser le mode par - interrogations avec - <literal>lpt<replaceable>N</replaceable></literal>.</para> - </step> - - </procedure> - - <para>Vous pouvez introduire ces commandes dans votre fichier - <filename>/etc/rc.local</filename> pour définir le mode - à chaque redémarrage. Voyez <citerefentry><refentrytitle>lptcontrol</refentrytitle><manvolnum>8</manvolnum></citerefentry> pour plus - d'informations.</para> - - </sect4> - - <sect4 - id="printing-testing"> - <title>Tester la communication avec l'imprimante</title> - - <para>Avant de passer à la configuration du gestionnaire - d'impression, vous devriez vous assurer que le système - d'exploitation arrive à envoyer des données à l'imprimante. - Il est plus facile de mettre séparement au point la - communication avec l'imprimante et la configuration du gestionnaire - d'impression.</para> - - <para>Pour tester l'imprimante, nous lui enverrons du texte. Pour - les imprimantes qui impriment immédiatement les caractères qu'on - leur envoie, le programme - <citerefentry> - <refentrytitle>lptest</refentrytitle></citerefentry> - est idéal: il génère les 96 caractères ASCII imprimables sur - 96 lignes.</para> - - <para>Pour une imprimante PostScript (ou tout autre imprimante - utilisant un langage), il nous faut un test plus sophistiqué. - Un petit programme PostScript, comme celui qui suit, fera l'affaire: - - <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> - - <note> - <para>Quand dans ce document j'utilise l'expression - “langage d'impression”, je me réfère à - un langage du type PostScript et non du genre PCL de - Hewlett Packard, bien que PCL ait d'excellentes - fonctionnalités - on peut insérer du texte au milieu - de ses séquences d'échappement. PostScript ne peut - imprimer directement du texte, et c'est pour ce genre - de langage qu'il y a des mesures particulières à - prendre.</para> - </note> - - <sect5 - id="printing-checking-parallel"> - <title>Tester une imprimante parallèle</title> - - <para>Cette section vous explique comment tester si FreeBSD - peut communiquer avec une imprimante connectée sur un port - parallèle.</para> - - <para><emphasis>Pour tester une imprimante sur un port - parallèle:</emphasis></para> - - <procedure> - - <step> - <para>Devenez super-utilisateur avec <citerefentry> - <refentrytitle>su</refentrytitle></citerefentry>.</para> - </step> - - <step> - <para>Envoyez des données à l'imprimante. - <itemizedlist> - - <listitem> - <para>Si l'imprimante accepte directement du texte, - utilisez <citerefentry> - <refentrytitle>lptest</refentrytitle></citerefentry>. Tapez: - - <informalexample> - <screen>&prompt.root; <userinput>lptest > /dev/lpt<replaceable>N</replaceable></userinput></screen> - </informalexample> où <replaceable>N</replaceable> - est le numéro du port parallèle, à partir de - zéro.</para> - </listitem> - - <listitem> - <para>Si l'imprimante comprend PostScript ou un - autre langage d'impression, alors envoyez-lui un - petit programme. Tapez: - - <informalexample> - <screen>&prompt.root; <userinput>cat > /dev/lpt<replaceable>N</replaceable></userinput></screen> - </informalexample> Puis tapez votre programme - ligne à ligne - <emphasis>avec soin</emphasis> car vous ne pouvez - pas corriger la ligne une fois que vous avez tapé - Entrée. Quand vous avez fini de saisir votre - programme, tapez CONTROL+D, ou une autre - combinaison particulière de touches, - pour indiquer la fin du fichier.</para> - - <para>Vous pouvez aussi mettre votre programme dans - un fichier et taper: - - <informalexample> - <screen>&prompt.root; <userinput>cat <replaceable>fichier</replaceable> > /dev/lpt<replaceable>N</replaceable></userinput></screen> - </informalexample> où <replaceable>fichier</replaceable> - est le nom du fichier contenant le programme que - vous voulez envoyer à l'imprimante.</para> - </listitem> - - </itemizedlist> - </para> - </step> - - </procedure> - - <para>Vous devriez obtenir une impression. Ne vous inquiétez pas - si le texte ne s'imprime pas correctement; nous réglerons ces - problèmes ensuite.</para> - - </sect5> - - <sect5 - id="printing-checking-serial"> - <title>Tester une imprimante série</title> - - <para>Cette section vous explique comment tester si FreeBSD - peut communiquer avec une imprimante connectée sur un port - série.</para> - - <para><emphasis>Pour tester une imprimante sur un port - série:</emphasis></para> - - <procedure> - - <step> - <para>Devenez super-utilisateur avec <citerefentry> - <refentrytitle>su</refentrytitle></citerefentry>.</para> - </step> - - <step> - <para>Editez le fichier <filename>/etc/remote</filename>. - Ajoutez la ligne suivante: - - <programlisting> - printer:dv=/dev/<replaceable>port</replaceable>:br#<replaceable>bps</replaceable>:pa=<replaceable>parité</replaceable> - </programlisting> où <replaceable>port</replaceable> - est le fichier spécial de périphérique pour le port - série (<literal>ttyd0</literal>, - <literal>ttyd1</literal>, etc...), <replaceable>bps</replaceable> est la vitesse de communication en bits par seconde, - et <replaceable>parité</replaceable> est la parité - requise par l'imprimante - (soit <literal>even</literal> (paire), <literal>odd</literal> (impaire), <literal>none</literal> (aucune), ou <literal>zero</literal> (toujours nulle) ).</para> - - <para>Voici un exemple pour une imprimante connectée par - une ligne série au troisième port série, à 19200 bps, - sans contrôle de parité: - - <programlisting> - printer:dv=/dev/ttyd2:br#19200:pa=none - </programlisting></para> - </step> - - <step> - <para>Connectez-vous à l'imprimante avec <citerefentry> - <refentrytitle>tip</refentrytitle></citerefentry>. Tapez: - <informalexample> - <screen>&prompt.root; <userinput>tip printer</userinput></screen> - </informalexample> Si cela ne marche pas, éditez de - nouveau le fichier <filename>/etc/remote</filename> - et essayez de remplacer - <filename>/dev/ttyd<replaceable>N</replaceable></filename> par <filename>/dev/cuaa<replaceable>N</replaceable></filename>.</para> - </step> - - <step> - <para>Envoyez des données à l'imprimante. - <itemizedlist> - - <listitem> - <para>Si l'imprimante accepte directement du texte, - utilisez <citerefentry> - <refentrytitle>lptest</refentrytitle></citerefentry>. Tapez: - - <informalexample> - <screen><prompt>~</prompt><userinput>$lptest</userinput></screen> - </informalexample></para> - </listitem> - - <listitem> - <para>Si votre imprimante comprend PostScript ou - un autre langage d'impression, envoyez-lui alors - un petit programme. Tapez le programme, ligne - à ligne, en faisant - <emphasis>très attention</emphasis> car le retour - arrière ou d'autres touches d'éditions peuvent - vouloir dire autre chose pour l'imprimante. - Vous devrez peut-être aussi utiliser un caractère - particulier de fin de fichier pour que - l'imprimante sache qu'elle a reçu tout le - programme. Pour les imprimantes PostScript, - tapez CONTROL+D.</para> - - <para>Vous pouvez aussi enregistrer votre programme - dans un fichier et taper: - - <informalexample> - <screen><prompt>~</prompt><userinput>><replaceable>fichier</replaceable></userinput></screen> - </informalexample> où <replaceable>fichier</replaceable> est le nom du fichier contenant le programme. Après que - <citerefentry> - <refentrytitle>tip</refentrytitle></citerefentry> ait envoyé le fichier, appuyez sur la touche de fin de fichier adéquate.</para> - </listitem> - - </itemizedlist> - </para> - </step> - - </procedure> - - <para>Vous devriez obtenir une impression. Ne vous inquiétez pas - si le texte ne s'imprime pas correctement; nous réglerons ces - problèmes ensuite.</para> - - </sect5> - </sect4> - </sect3> - - <sect3 - id="printing-printcap"> - <title>Activer le gestionnaire d'impression: Le - fichier <filename>/etc/printcap</filename> - </title> - - <para>A ce stade, votre imprimante devrait être connectée, votre - noyau configuré (au besoin) pour communiquer avec, et vous devriez - avoir réussi à lui envoyer un minimum de données. Nous sommes - maintenant prêt à configurer LPD pour qu'il contrôle l'accès à - votre imprimante.</para> - - <para>Vous configurez LPD en éditant le fichier - <filename>/etc/printcap</filename>. Le gestionnaire d'impression - LPD lit ce fichier chaque fois qu'il est fait appel à lui, les - modifications s'appliquent donc immédiatement.</para> - - <para>Le format du fichier <citerefentry> - <refentrytitle>printcap</refentrytitle></citerefentry> est - explicite. Utilisez votre éditeur de texte préféré pour le - modifier. Son format est similaire à celui des fichiers - associés à d'autres utilitaires comme - <filename>/usr/share/misc/termcap</filename> et - <filename>/etc/remote</filename>. Pour une description complète - de ce format, reportez-vous à - <citerefentry><refentrytitle>cgetent</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para> - - <para>Une configuration de base du gestionnaire d'impression passe - par les étapes suivantes:</para> - - <procedure> - - <step> - <para>Choisissez un nom (et quelques alias utiles) pour - l'imprimante et introduisez-le(s) dans le fichier - <filename>/etc/printcap</filename>; reportez-vous à - la section <link - linkend="printing-naming">Donner un nom à l'imprimante</link>.</para> - </step> - - <step> - <para>Désactivez l'impression des pages d'en-tête (qui sont - en service par défaut) en insérant la fonctionnalité - <literal>sh</literal>; - reportez-vous à la section - <link linkend="printing-no-header-pages">Supprimer l'impression des pages - d'en-tête</link>.</para> - </step> - - <step> - <para>Créez un répertoire pour la file d'attente, et indiquez - où il se trouve avec l'option <literal>sd</literal>; - reportez-vous à la section <link linkend="printing-spooldir">Créer - le répertoire tampon</link>.</para> - </step> - - <step> - <para>Identifiez l'entrée <filename>/dev</filename> à utiliser - avec cette imprimante et reportez-la dans le fichier - <filename>/etc/printcap</filename> avec l'option - <literal>lp</literal>; reportez-vous à la section - <link - linkend="printing-device">Définir le périphérique - associé à l'imprimante</link>. Si l'imprimante est sur un port série, vous - devez aussi préciser les paramètres de communication - avec les options - <literal>fs</literal>, <literal>fc</literal>, - <literal>xs</literal>, et <literal>xc</literal>; - reportez-vous à la section <link - linkend="printing-commparam">Configurer les paramètres - de communication du gestionnaire d'impression</link>.</para> - </step> - - <step> - <para>Installez un filtre pour l'impression de fichiers texte; - reportez-vous à la section <link - linkend="printing-textfilter">Installer le filtre texte</link>.</para> - </step> - - <step> - <para>Testez la configuration en imprimant quelque chose avec - la commande - <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry>; - reportez-vous aux sections - <link linkend="printing-trying">Tester la configuration</link> - et <link linkend="printing-troubleshooting">Régler - les problèmes</link>.</para> - </step> - - </procedure> - - <note> - <para>Les imprimantes qui utilisent un langage, comme les - imprimantes PostScript, ne savent pas imprimer directement - du texte. La configuration simple résumée ci-desssus, et - décrite dans ce qui suit, suppose que si vous installez - ce type d'imprimante, vous lui enverrez uniquement des - fichiers qu'elle comprenne.</para> - </note> - - <para>Les utilisateurs s'attendent souvent à pouvoir imprimer - du texte simple sur toutes les imprimantes de votre système. - Les programmes qui font appel à LPD font la même supposition. - Si vous installez ce type d'imprimante et que vous voulez - utiliser le langage d'impression <emphasis>et</emphasis> - imprimer aussi des fichiers texte, je vous conseille fortement - d'ajouter une étape supplémentaire à la procédure résumée - ci-dessus: installez un filtre de conversion automatique des - fichiers texte en PostScript (ou tout autre langage d'impression). - La section <link - linkend="printing-advanced-if-conversion">Imprimer du texte - sur des imprimantes PostScript</link> vous explique comment - faire.</para> - - - <sect4 - id="printing-naming"> - <title>Donner un nom à l'imprimante</title> - - <para>La première étape (facile) consiste à donner - un nom à l'imprimante. Cela n'a pas d'importance que vous lui - donniez un nom fonctionnel ou nom bizarre parce que vous - pouvez aussi définir un certain nombre d'alias.</para> - - <para>Au moins l'une des imprimantes que vous définirez dans - le fichier <filename>/etc/printcap</filename> devrait s'appeler - <literal>lp</literal>. C'est le nom de l'imprimante par défaut. - Si les utilisateurs ne définissent pas leur variable - d'environnement PRINTER et ne précisent pas le nom de - l'imprimante avec une des commandes de LPD, alors - <literal>lp</literal> est l'imprimante par défaut à laquelle ils - s'adressent.</para> - - <para>Il est aussi d'usage que le dernier alias d'une imprimante - la décrive complètement, marque et modèle y compris.</para> - - <para>Un fois que vous avez choisi un nom et quelques alias - courants, introduisez-les dans le fichier - <filename>/etc/printcap</filename>. Le nom de l'imprimante - doit être écrit au début de la ligne. Séparez chaque alias - par une barre verticale et mettez un “:” après - le dernier alias.</para> - - <para>L'exemple suivant montre un fichier - <filename>/etc/printcap</filename> de base, qui définit deux - imprimantes (une imprimante ligne Diablo 630 et une imprimante - laser PostScript Panasonic KX-P4455): - - <programlisting> - # - # /etc/printcap pour la machine rose - # - rattan|line|diablo|lp|Imprimante Ligne Diablo 630: - - bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4: - </programlisting> - Dans cet exemple, la première imprimante s'appelle - <literal>rattan</literal> et a pour alias - <literal>line</literal>, <literal>diablo</literal>, - <literal>lp</literal>, et <literal>Imprimante Ligne Diablo - 630</literal>. Comme <literal>lp</literal> est un de ses alias, - c'est aussi l'imprimante par défaut. La seconde s'appelle - <literal>bamboo</literal>, et a pour alias <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 l'impression de pages d'en-tête</title> - - <para>Le gestionnaire d'impression générera par défaut - une page d'en-tête pour chaque travail d'impression. La page - d'en-tête affiche le nom de l'utilisateur qui l'a soumis, - le nom de la machine d'où il a été lancé et le nom du - travail d'impression, le tout en grosses lettres. - Malheureusement, tout ce texte supplémentaire complique la - mise au point de la configuration des imprimantes, aussi - supprimerons-nous les pages d'en-tête.</para> - - <para>Pour supprimer les pages d'en-tête, - ajoutez la fonctionnalité - <literal>sh</literal> à l'entrée associée à l'imprimante dans - le fichier <filename>/etc/printcap</filename>. Voici un exemple - de fichier <filename>/etc/printcap</filename> où l'on a ajouté - <literal>sh</literal>:</para> - - <programlisting> - # - # /etc/printcap pour la machine rose - pas de pages d'en-tête - # - rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ - :sh: - - bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :sh: - </programlisting> - - <para>Notez bien le format correct. La première ligne commence - immédiatement à gauche, et les lignes suivantes sont indentées - avec un seul caractère Tab. Chaque ligne d'une même entrée, sauf - la dernière, se termine par une barre oblique inverse.</para> - - </sect4> - - <sect4 - id="printing-spooldir"> - <title>Créer le répertoire tampon</title> - - <para>L'étape suivante de la configuration de base du gestionnaire - d'impression consiste à créer un - <emphasis>répertoire tampon</emphasis>, où les travaux - d'impression attendent d'être traités et où se trouvent aussi - un certain nombre de fichiers nécessaires au gestionnaire - d'impression.</para> - - <para>Comme le contenu de ces répertoires tampon est transitoire, - il est habituel de les mettre dans le répertoire - <filename>/var/spool</filename>. Ces répertoires n'ont pas non - plus besoin d'être archivés. Il suffit d'un simple - <citerefentry> - <refentrytitle>mkdir</refentrytitle></citerefentry> pour - les recréer.</para> - - <para>L'usage veut que l'on donne au répertoire le même nom - qu'à l'imprimante, comme ci-dessous: - - <informalexample> - <screen>&prompt.root; <userinput>mkdir /var/spool/<replaceable>imprimante</replaceable></userinput></screen> - </informalexample> Cependant, s'il y a beaucoup d'imprimantes - sur votre réseau, vous voudrez peut-être regrouper tous les - répertoires tampon dans un seul répertoire qui sera réservé - à l'impression par LPD. C'est ce que nous ferons pour nos deux - imprimantes <literal>rattan</literal> et - <literal>bamboo</literal>: - - <informalexample> - <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> - </informalexample></para> - - <note> - <para>Si la confidentialité des travaux d'impression de - vos utilisateurs vous préoccuppe, vous pouvez protéger - le répertoire tampon pour qu'il ne soit pas accessible - à tout le monde. Les répertoires tampon doivent appartenir, - être accessibles en lecture et en écriture et pouvoir être - parcourus par l'utilisateur <username>daemon</username> et le - groupe <username>daemon</username>. C'est ce que nous ferons - pour les imprimantes de notre exemple:</para> - - - <informalexample> - <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> - </informalexample> - </note> - - <para>En dernier lieu, il faut donner à LPD les noms de ces - répertoires par l'intermédiaire du fichier - <filename>/etc/printcap</filename>. Cela se fait avec - la fonctionnalité - <literal remap="tt">sd</literal>:</para> - - <programlisting> - # - # /etc/printcap pour la machine rose - ajout des répertoires tampon - # - rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ - :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 bien que le nom de l'imprimante commence en première - colonne, que toutes les autres lignes doivent être indentées - par une tabulation et que toutes les lignes sauf la dernière - se terminent par une barre oblique inverse.</para> - - <para>Si vous ne définissez pas le répertoire tampon avec - <literal>sd</literal>, le gestionnaire d'impression utilisera - <filename>/var/spool/lpd</filename> par défaut.</para> - - </sect4> - - <sect4 id="printing-device"> - <title>Définir le périphérique associé à l'imprimante</title> - - <para>Dans la section <link linkend="printing-dev-ports">Ajouter - les entrées pour les ports dans le répertoire <filename>/dev</filename></link>, - nous avons identifié l'entrée du répertoire <filename>/dev</filename> - via laquelle FreeBSD communiquera avec l'imprimante. Il faut - maintenant donner cette information à LPD. Quand le gestionnaire - aura un travail à imprimer, il ouvrira le fichier spécial - pour les besoins du programme filtre (qui envoie les données - à l'imprimante).</para> - - <para>Indiquez l'entrée <filename>/dev</filename> utilisée avec - la fonctionnalité <literal>lp</literal> dans le fichier - <filename>/etc/printcap</filename>.</para> - - <para>Supposons que, dans notre exemple, l'imprimante - <hostid>rattan</hostid> soit sur le premier port parallèle et - et l'imprimante <hostid>bamboo</hostid> sur le sixième; voici - ce qu'il faut ajouter au fichier - <filename>/etc/printcap</filename>:</para> - - <programlisting> - # - # /etc/printcap pour la machine rose - # définition des périphériques à utiliser - # - rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ - :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 vous ne donnez pas de valeur - <emphasis remap=tt>lp</emphasis> à une imprimante - dans le fichier - <filename>/etc/printcap</filename>, LPD utilise - <filename>/dev/lp</filename> par défaut. - <filename>/dev/lp</filename> n'existe actuellement pas sous - FreeBSD.</para> - - <para>Si l'imprimante est connectée à un port parallèle, allez - directement à la section <link - linkend="printing-textfilter">Installer le filtre texte</link>. - Sinon, suivez bien les instructions de - la prochaine section.</para> - - </sect4> - - <sect4 - id="printing-commparam"> - <title>Configurer les paramètres de communication du gestionnaire - d'impression</title> - - <para>Pour les imprimantes sur des ports série, LPD peut définir - la vitesse en bps, la parité et les autres paramètres de - communication série, pour les besoins du programme filtre, qui - envoie les données à l'imprimante. C'est intéressant parce que: - - <itemizedlist> - - <listitem> - <para>Cela vous permet de tester des valeurs différentes - des paramètres en modifiant simplement le fichier - <filename>/etc/printcap</filename>; vous n'avez pas - besoin de recompiler le programme filtre.</para> - </listitem> - - <listitem> - <para>Cela permet au gestionnaire d'impression d'utiliser - le même programme filtre pour différentes imprimantes - qui n'ont pas les mêmes paramètres de - communication.</para> - </listitem> - - </itemizedlist> - </para> - - <para>Les fonctionnalités suivantes de - <filename>/etc/printcap</filename> - contrôlent les paramètres de communication série du périphérique - spécifié avec la fonctionnalité - <emphasis remap=tt>lp</emphasis>: - - <variablelist> - <varlistentry><term><literal>br#<replaceable>vitesse_en_bps</replaceable></literal></term> - <listitem> - <para>Fixe la vitesse de communication à - <replaceable>vitesse_en_bps</replaceable>, où - <replaceable>vitesse_en_bps</replaceable> - peut prendre les valeurs 50, 75, - 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, - 9600, 19200, ou 38400 bits par seconde.</para> - </listitem> - </varlistentry> - - <varlistentry><term><literal>fc#<replaceable>bits_à_réinitialiser</replaceable></literal></term> - - <listitem> - <para>Réinitialise les indicateurs - <replaceable>bits_à_réinitialiser</replaceable> de la - structure <replaceable>sgttyb</replaceable> - après avoir ouvert le fichier spécial de - périphérique.</para> - </listitem> - </varlistentry> - - <varlistentry><term><literal>fs#<replaceable>bits_à_positionner</replaceable></literal></term> - - <listitem> - <para>Positionne les indicateurs - <replaceable>bits_à_positionner</replaceable> de la - structure <replaceable>sgttyb</replaceable>.</para> - </listitem> - </varlistentry> - - <varlistentry><term><literal>xc#<replaceable>bits_à_réinitialiser</replaceable></literal></term> - - <listitem> - <para>Réinitialise les indicateurs du mode local - <replaceable>bits_à_rénitialiser</replaceable> - après avoir ouvert le fichier spécial de - périphérique.</para> - </listitem> - </varlistentry> - - <varlistentry><term><literal>xs#<replaceable>bits_à_positionner</replaceable></literal></term> - - <listitem> - <para>Positionne les indicateurs du mode local - <replaceable>bits_à_positionner</replaceable>.</para> - </listitem> - </varlistentry> - </variablelist> Pour plus d'informations sur les bits manipulés - par les fonctionnalités - <literal>fc</literal>, <literal>fs</literal>, <literal>xc</literal>, - et <literal>xs</literal>, reportez-vous au fichier - <filename>/usr/include/sys/ioctl_compat.h</filename>.</para> - - <para>Quand LPD ouvre le périphérique défini par la fonctionnalité - <literal>lp</literal>, il lit les indicateurs de la structure - <literal>sgttyb</literal>; il réinitialise les bits définis - par la fonctionnalité <literal remap="tt">fc</literal>, - puis positionne ceux définis par la fonctionnalité - <literal>fs</literal> et applique le paramètrage ainsi défini. - Il fait de même pour les indicateurs du mode local.</para> - - <para>Complétons notre exemple pour l'imprimante sur le - sixième port série. Nous fixerons la vitesse à 38400 bps. - Nous positionnerons les indicateurs - TANDEM, ANYP, LITOUT, FLUSHO, et PASS8, et les indicateurs - du mode local LITOUT et PASS8: - - <programlisting> - bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :sh:sd=/var/spool/lpd/bamboo:\ - :lp=/dev/ttyd5:fs#0x82000c1:xs#0x820: - </programlisting></para> - - </sect4> - - <sect4 - id="printing-textfilter"> - <title>Installer le filtre texte</title> - - <para>Nous sommes maintenant prêts à dire à LPD quel filtre - texte utiliser pour envoyer les travaux à l'imprimante. - Un <emphasis>filtre texte</emphasis>, aussi appelé - <emphasis>filtre d'entrée</emphasis>, est un programme que LPD - exécute quand il a un travail à imprimer. Quand LPD - exécute un filtre texte pour une imprimante, il affecte - à l'entrée standard du filtre le travail à imprimer et à - sa sortie standard le fichier spécial de périphérique - défini par la fonctionnalité <literal>lp</literal>. - Le filtre est - supposé lire le travail sur l'entrée standard, effectuer le - transcodage nécessaire et envoyer le résultat sur la sortie - standard. Pour plus d'informations sur les filtres texte, - reportez-vous à la section <link - linkend="printing-advanced-filters">Comment - fonctionnent les filtres</link>.</para> - - <para>Pour notre exemple de configuration simple, le filtre texte - peut être une petite procédure qui exécute seulement - <command>/bin/cat</command> pour envoyer le travail à - l'imprimante. FreeBSD est livré avec un autre filtre appelé - <filename>lpf</filename> qui gère les retours arrière et les - soulignés pour les imprimantes qui ne traitent pas bien ces - caractères de contrôle. Et, bien sûr, vous pouvez utilisez le - filtre que vous voulez. Le filtre <command>lpf</command> est - décrit en détail à la section - <link linkend="printing-advanced-lpf"><command>lpf</command>: un - filtre texte</link>.</para> - - <para>Créons d'abord le filtre texte élémentaire - <filename>/usr/local/libexec/if-simple</filename>. - Avec votre éditeur de texte favori, donnez à ce fichier - le contenu suivant: - - <programlisting> - #!/bin/sh - # - # if-simple - filtre texte élémentaire pour lpd - # fichier /usr/local/libexec/if-simple - # - # copie simplement stdin dans stdout. Ne prend aucun argument. - - /bin/cat && exit 0 - exit 2 - </programlisting> - Mettez les droits d'exécution sur le fichier: - - <informalexample> - <screen>&prompt.root; <userinput>chmod 555 /usr/local/libexec/if-simple</userinput></screen> - </informalexample></para> - - <para>Et précisez maintenant à LPD de l'utiliser - avec la fonctionnalité - <literal>if</literal> de - <filename>/etc/printcap</filename>. Nous l'affecterons aux deux - imprimantes que nous avons déjà dans notre exemple de - <filename>/etc/printcap</filename>:</para> - - <programlisting> - # - # /etc/printcap pour la machine rose - ajout du filtre texte - # - rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ - :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:fs#0x82000e1:xs#0x820:\ - :if=/usr/local/libexec/if-simple: - </programlisting> - - </sect4> - - <sect4 - id="printing-trying"> - <title>Tester la configuration</title> - - <para>Vous avez terminé la configuration simple de LPD. - Malheureusement, les félicitations ne sont pas encore de mise, - il nous faut d'abord faire une essai et régler tous les - problèmes. Pour tester la configuration, essayez d'imprimer - quelque chose. Pour imprimer avec le gestionnaire LPD, vous - invoquez la commande <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry>, - qui soumet un travail d'impression.</para> - - <para>Vous pouvez combiner <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry> - et le programme <citerefentry> - <refentrytitle>lptest</refentrytitle></citerefentry>, - dont nous avons parlé à la section - <link linkend="printing-testing">Tester la communication avec - l'imprimante</link>, pour générer du - texte pour le test.</para> - - <para><emphasis>Tester la configuration simple de - LPD:</emphasis></para> - - <para>Tapez: - - <informalexample> - <screen>&prompt.root; <userinput>lptest 20 5 | lpr -P<replaceable>imprimante</replaceable></userinput></screen> - </informalexample> où <emphasis - remap=it>imprimante</emphasis> est le nom d'une imprimante - (ou un alias) définie dans <filename>/etc/printcap</filename>. - Pour tester l'imprimante par défaut, tapez <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry> - sans argument <option>-P</option>. Encore une fois, si vous - tester une imprimante qui attend du PostScript, envoyez-lui - un programme PostScript au lieu d'utiliser - <citerefentry> - <refentrytitle>lptest</refentrytitle></citerefentry>. Vous - pouvez le faire en mettant ce programme dans un fichier et en - tapant <command>lpr <replaceable>fichier</replaceable></command>.</para> - - <para>Avec une imprimante PostScript, vous devriez voir les - résultats du programme. Si vous utilisez <citerefentry> - <refentrytitle>lptest</refentrytitle></citerefentry>, - alors le résultat devrait ressembler à ce qui suit:</para> - - <programlisting> - !"#$%&'()*+,-./01234 - "#$%&'()*+,-./012345 - #$%&'()*+,-./0123456 - $%&'()*+,-./01234567 - %&'()*+,-./012345678 - </programlisting> - - <para>Pour faire d'autres essais, envoyez des programmes plus - longs (aux imprimantes qui comprennent un langage) ou - exécutez <citerefentry> - <refentrytitle>lptest</refentrytitle></citerefentry> avec - d'autres arguments. Par exemple, <command>lptest 80 60</command> qui générera 60 lignes de 80 caractères chacune.</para> - - <para>Si l'imprimante ne fonctionne pas, voyez la section suivante <link - linkend="printing-troubleshooting">Régler les problèmes</link>.</para> - - </sect4> - - <sect4 - id="printing-troubleshooting"> - <title>Régler les problèmes</title> - - <para>Après le test élémentaire avec <citerefentry> - <refentrytitle>lptest</refentrytitle></citerefentry>, vous - pouvez avoir rencontré l'un des problèmes suivants, au lieu - d'obtenir une impression correcte:</para> - - <variablelist> - <varlistentry><term>Cela a marché quelque temps; ou, - l'imprimante n'a pas éjecté la page.</term> - <listitem> - <para>L'imprimante a bien imprimé les résultats du - test ci-dessus, puis s'est arrêtée et n'a rien fait. - Il vous aurait peut être fallu appuyer sur le bouton - “Avance Papier” ou “Continuer - l'Impression” pour obtenir la suite.</para> - - <para>Dans ce cas, l'imprimante attendait probablement - la suite de votre travail avant d'imprimer quoi que - ce soit. Pour régler le problème, vous pouvez modifier - le filtre texte pour qu'il envoie un caractère de saut - de page (“FORM FEED”) - ou tout autre - caractère nécessaire - à l'imprimante. Cela suffit - généralement pour que l'imprimante traite immédiatement - le texte qu'elle a encore en mémoire. C'est aussi - utile pour être sûr que chaque travail d'impression - se termine sur une page complète, de sorte que le - travail suivant ne commence pas sur la dernière page - du travail qui le précède.</para> - - <para>Voici une procédure - <filename>/usr/local/libexec/if-simple</filename> - modifiée qui envoie un saut de page à la fin du - travail d'impression: - - <programlisting> - #!/bin/sh - # - # if-simple - filtre texte élémentaire pour lpd - # fichier /usr/local/libexec/if-simple - # - # copie simplement stdin dans stdout. Ne prend aucun argument. - # envoie un caractère de saut de page (\f) en fin d'impression. - - /bin/cat && printf "\f" && exit 0 - exit 2 - </programlisting></para> - </listitem> - </varlistentry> - - <varlistentry><term>Le texte s'est imprimé “en - escalier.”</term> - - <listitem> - <para>Si vous obtenez ce qui suit: - - <programlisting> - !"#$%&'()*+,-./01234 - "#$%&'()*+,-./012345 - $%&'()*+,-./0123456 - </programlisting> - vous êtes la nouvelle victime de - l'<emphasis>effet d'escalier</emphasis>, dû à une - interprétation divergente des caractères de saut de - ligne. Les systèmes d'exploitation de type Unix - utilisent un seul caractère: le code ASCII 10, ou - saut de ligne (LF - “Line Feed”). - MS-DOS, OS/2 et d'autres utilisent deux caractères, - le code ASCII 10 <emphasis>et</emphasis> le code ASCII - 13 (le retour-chariot ou CR - “Carriage Return”). - De nombreuses imprimantes emploient les conventions - MS-DOS pour passer à la ligne.</para> - - <para>Quand vous imprimez avec FreeBSD, votre texte ne - contient que le caractère de saut de ligne. L'imprimante - passe alors à la ligne suivante, mais ne revient pas - en début de ligne. C'est à cela que sert le - retour-chariot: revenir au début de ligne avant - d'imprimer le prochain caractère.</para> - - <!-- This para needs to be rewritten - Nik --> - <para>Voici ce que FreeBSD attend de votre imprimante:</para> - - <informaltable> - <tgroup cols="2"> - <thead> - <row> - <entry>L'imprimante reçoit</entry> - <entry>L'imprimante imprime</entry> - </row> - </thead> - - <tbody> - <row> - <entry>CR</entry> - <entry>CR</entry> - </row> - - <row> - <entry>LF</entry> - <entry>CR + LF</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Il y a plusieurs façons d'y arriver: - <itemizedlist> - - <listitem> - <para>Utilisez les interrupteurs du panneau de - contrôle de l'imprimante pour modifier la façon - dont elle interprète ces caractères. Voyez le - mode d'emploi de votre imprimante pour savoir - comment faire.</para> - - <note> - <para>Si vous utilisez aussi sur votre machine - d'autres systèmes d'exploitation que FreeBSD, - vous devrez peut-être - <emphasis>configurer</emphasis> votre - imprimante pour qu'elle interprète CR et LF - en fonction de la manière dont ces autres - systèmes d'exploitation les utilisent. Vous - préférerez alors une des autres solutions - ci-dessous.</para> - </note> - </listitem> - - <listitem> - <para>Faire en sorte que le pilote de liaison série - de FreeBSD convertisse les LF en CR+LF. Cela ne - marche, bien entendu, <emphasis>qu'avec</emphasis> - les imprimantes sur des ports série. Pour cela, - positionnez le bit CRMOD de la fonctionnalité - <emphasis remap="tt">fs</emphasis> de l'imprimante dans - le fichier - <filename>/etc/printcap</filename>.</para> - </listitem> - - <listitem> - <para>Envoyer une - <emphasis>séquence d'échappement</emphasis> à - l'imprimante pour qu'elle traite temporairement - les caractères LF de façon différente. Consultez - la documentation de votre imprimante pour - connaître la commande adéquate. Une fois que vous - l'avez trouvée, modifiez le filtre pour qu'il - envoie cette commande avant le travail - d'impression.</para> - - <para>Voici un exemple de filtre texte pour les - imprimantes qui acceptent les séquences - d'échappement du langage PCL de Hewlett-Packard. - Ce filtre envoie la commande qui dit à - l'imprimante de traiter les caractères LF comme - un CR et un LF, puis le travail d'impression et - enfin un saut de page pour éjecter la dernière - page. Il devrait être utilisable avec presque - toutes les imprimantes Hewlett-Packard.</para> - - <programlisting> - #!/bin/sh - # - # hpif - filtre texte élémentaire pour lpd - # pour les imprimantes compatibles HP-PCL - # fichier /usr/local/libexec/hpif - # - # copie simplement stdin dans stdout. Ne prend aucun argument. - # dit à l'imprimante de traiter LF comme un CR+LF -# envoie un caractere de saut de page (\f) en fin d'impression. - -printf "\033&k2G" && cat && printf "\f" && exit 0 -exit 2 - </programlisting> - - <para>Voici un exemple de fichier - <filename>/etc/printcap</filename> pour une - machine appelée orchid. Elle a une seule - imprimante sur son premier port parallèle, une - LaserJet 3Si Hewlett-Packard appelée - <hostid>teak</hostid>. Elle utilise la procédure - ci-dessus comme filtre texte: - - <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: - </programlisting></para> - </listitem> - - </itemizedlist> - </para> - </listitem> - </varlistentry> - - <varlistentry><term>Les lignes se superposent.</term> - - <listitem> - <para>L'imprimante n'a jamais avancé d'une ligne. - Toutes les lignes sont imprimées les unes sur les - autres.</para> - - <para>C'est le problème “inverse” de l'effet - d'escalier décrit ci-dessus, et c'est plus rare. Pour - une raison quelconque, les caractères LF que FreeBSD - emploie en fin de ligne sont compris comme des - caractères CR de retour en début de ligne, sans passage - à la ligne.</para> - - <!-- Need to rewrite this para --> - <para>Utilisez les interrupteurs du panneau de - contrôle de l'imprimante pour modifier comme suit - son interprétation des caractères LF et CR.</para> - - <informaltable> - <tgroup cols="2"> - <thead> - <row> - <entry>L'imprimante reçoit</entry> - <entry>L'imprimante imprime</entry> - </row> - </thead> - - <tbody> - <row> - <entry>CR</entry> - <entry>CR</entry> - </row> - - <row> - <entry>LF</entry> - <entry>CR + LF</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </listitem> - </varlistentry> - - <varlistentry><term>L'imprimante perd des caractères.</term> - - <listitem> - <para>En cours d'impression, l'imprimante perd - quelques caractères de chaque ligne. Cela peut aller - de mal en pis, de plus en plus de caractères se - perdent.</para> - - <para>Le problème tient à ce que l'imprimante ne - suit pas le rythme auquel l'ordinateur lui envoie - des données sur la ligne série. (Ce problème ne - devrait pas se produire avec les imprimantes sur - des ports parallèles.) Il y a deux façons de - résoudre ce problème: - <itemizedlist> - - <listitem> - <para>Si l'imprimante gère le contrôle de flux - XON/XOFF, faites en sorte que FreeBSD l'utilise - en positionnant le bit TANDEM de la - fonctionnalité - <literal>fs</literal>.</para> - </listitem> - - <listitem> - <para>Si l'imprimante gère le contrôle de flux - matériel, positionnez le bit MDMBUF de la - fonctionnalité <literal>fs</literal>. Vérifiez - que le câble qui relie l'imprimante à - l'ordinateur est bien conçu pour transmettre - les signaux de contrôle de flux (CTS/RTS).</para> - </listitem> - - <listitem> - <para>Si l'imprimante ne gère aucun protocole de - contrôle de flux, utilisez la bonne combinaison - de bits NLDELAY, TBDELAY, CRDELAY, VTDELAY, et - BSDELAY de la fonctionnalité - <literal>fs</literal> pour introduire les délais - appropriés dans le flot de données - envoyé à l'imprimante.</para> - </listitem> - - </itemizedlist> - </para> - </listitem> - </varlistentry> - - <varlistentry><term>Cela imprime n'importe quoi.</term> - - <listitem> - <para>Ce qui s'imprime ressemble à tout, sauf au - texte attendu.</para> - - <para>C'est en général un autre symptôme d'un paramétrage - incorrect de la communication avec une imprimante série. - Vérifiez la vitesse en bps de la fonctionnalité - <literal>br</literal>, et les bits de parité - des fonctionnalités <literal>fs</literal> et - <literal>fc</literal>; assurez-vous que l'imprimante - utilise les mêmes paramètres que ceux définis dans le - fichier <filename>/etc/printcap</filename>.</para> - </listitem> - </varlistentry> - - <varlistentry><term>Il ne se passe rien.</term> - - <listitem> - <para>S'il ne se passe rien, le problème vient - probablement de FreeBSD et non du matériel. Ajoutez - la fonctionnalité de trace - (<literal>lf</literal>) à l'entrée associée à - l'imprimante que vous testez, dans le fichier - <filename>/etc/printcap</filename>. Par exemple, - voici l'entrée pour <literal>rattan</literal>, avec - la fonctionnalité <literal>lf</literal>: - - <programlisting> - rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ - :sh:sd=/var/spool/lpd/rattan:\ - :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple:\ - :lf=/var/log/rattan.log - </programlisting> - Refaites ensuite un essai d'impression et consultez le - fichier de trace - (<filename>/var/log/rattan.log</filename>, dans notre - exemple) pour voir s'il y a des messages d'erreur. - Essayez ensuite de corriger le problème au vu de - ces messages.</para> - - <para>Si vous n'utilisez pas la fonctionnalité - <literal>lf</literal>, LPD utilise - <filename>/dev/console</filename> par défaut.</para> - - </listitem> - </varlistentry> - </variablelist> - - </sect4> - </sect3> - </sect2> - </sect1> - - <sect1 - id="printing-using"> - <title>Utiliser les imprimantes</title> - - <para>Cette section vous explique comment utiliser les imprimantes - que vous avez configurées pour FreeBSD. Voici un résumé des - commandes utilisateur:</para> - - <variablelist> - <varlistentry><term><citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry></term> - <listitem> - <para>Imprime les travaux.</para> - </listitem> - </varlistentry> - - <varlistentry><term><citerefentry> - <refentrytitle>lpq</refentrytitle></citerefentry></term> - - <listitem> - <para>Consulte la file d'attente.</para> - </listitem> - </varlistentry> - - <varlistentry><term><citerefentry> - <refentrytitle>lprm</refentrytitle></citerefentry></term> - - <listitem> - <para>Retire des travaux de la file d'attente.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Il y a aussi une commande d'administration, <citerefentry> - <refentrytitle>lpc</refentrytitle></citerefentry>, - décrite dans la section <link linkend="printing-lpc">Administrer - les imprimantes</link>, - qui sert à gérer les imprimantes et leurs - files d'attente.</para> - - <para>Chacune des trois commandes <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry>, <citerefentry> - <refentrytitle>lprm</refentrytitle></citerefentry>, et - <citerefentry> - <refentrytitle>lpq</refentrytitle></citerefentry> - accepte l'option <option>-P <replaceable>imprimante</replaceable></option> pour préciser à quelle imprimante/file d'attente, - définie dans le fichier <filename>/etc/printcap</filename>, - elle s'applique. Vous pouvez alors soumettre, annuler et - consulter l'état de vos travaux sur les différentes imprimantes. - Si vous omettez l'option <option>-P</option>, ces commandes - s'appliquent à l'imprimante définie par la variable - d'environnement <envar>PRINTER</envar>. En dernier ressort, si - vous n'avez pas défini la variable d'environnement - <envar>PRINTER</envar>, ces commandes s'appliquent par défaut à - l'imprimante appelée <emphasis remap=tt>lp</emphasis>.</para> - - <para>Dans ce qui suit, le terme - <emphasis>imprimante par défaut</emphasis> désigne donc - l'imprimante définie par la variable d'environnement - <envar>PRINTER</envar>, ou l'imprimante appelée - <literal>lp</literal> s'il n'y a pas de variable d'environnement - <envar>PRINTER</envar>.</para> - - - <sect2 - id="printing-lpr"> - <title>Imprimer</title> - - <para>Pour imprimer des fichiers, tapez: - - <informalexample> - <screen>&prompt.user; <userinput>lpr <replaceable>fichier</replaceable> <replaceable>...</replaceable></userinput></screen> - </informalexample> Cela imprime chacun des fichiers indiqués sur - l'imprimante par défaut. Si vous ne donnez pas de nom de fichier, - <citerefentry><refentrytitle>lpr</refentrytitle></citerefentry> - lit les données à imprimer sur l'entrée standard. Par exemple, - la commande: - - <informalexample> - <screen>&prompt.user; <userinput>lpr /etc/host.conf /etc/hosts.equiv</userinput></screen> - </informalexample> imprime des fichiers système importants. Pour - choisir l'imprimante, tapez: - - <informalexample> - <screen>&prompt.user; <userinput>lpr -P <replaceable>imprimante</replaceable> <replaceable>fichier</replaceable> <replaceable>...</replaceable></userinput></screen> - </informalexample> Cet exemple imprime la liste longue du répertoire - courant sur l'imprimante appelée <literal>rattan</literal>: - - <informalexample> - <screen>&prompt.user; <userinput>ls -l | lpr -P rattan</userinput></screen> - </informalexample> Comme on n'a pas donné de nom de fichier à la - commande - <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry>, - elle lit les données à imprimer sur l'entrée standard, qui est ici - le résultat de la commande <command>ls -l</command>.</para> - - <para>La commande <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry> accepte une - grande variété d'options pour contrôler le format, convertir - les fichiers, imprimer plusieurs copies et ainsi de suite. Pour - plus d'informations, reportez-vous à la section - <link linkend="printing-lpr-options">Au-delà du simple texte : options - d'impression</link>.</para> - - </sect2> - - <sect2 - id="printing-lpq"> - <title>Consulter l'état de la file d'attente</title> - - <para>Quand vous imprimez avec <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry>, les - données que vous voulez imprimer sont regroupées dans un - “travail d'impression”, qui est envoyé au gestionnaire - LPD. Chaque imprimante a sa file d'attente des travaux d'impression, - et le votre y est mis en attente avec vos autres travaux et ceux des - autres utilisateurs. L'imprimante les traite sur la base du premier - arrivé, premier servi.</para> - - <para>Pour connaître l'état de la file d'attente de l'imprimante par - défaut, tapez: - <citerefentry> - <refentrytitle>lpq</refentrytitle></citerefentry>. Pour une - imprimante particulière, utilisez l'option <option>-P</option>. Par - exemple, la commande: - - <informalexample> - <screen>&prompt.user; <userinput>lpq -P bamboo</userinput></screen> - </informalexample>affiche la file d'attente de l'imprimante appelée - <hostid>bamboo</hostid>. Voici un exemple de résultat de la - commande <command>lpq</command>: - - <informalexample> - <screen>bamboo is ready and printing - Rank Owner Job Files Total Size - active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes - 2nd kelly 10 (standard input) 1635 bytes - 3rd mary 11 ... 78519 bytes</screen> - </informalexample> Il y a trois travaux dans la file d'attente de - <literal>bamboo</literal>. Le premier, soumis par l'utilisateur - kelly, a été affecté du “numéro de travail” 9. A chaque - travail est attribué un numéro de travail unique. La plupart du - temps, vous n'avez pas besoin de le connaître, sauf si vous voulez - annuler l'impression; reportez-vous à la section - <link linkend="printing-lprm">Annuler des impressions</link> pour plus de - détails.</para> - - <para>Le travail numéro neuf comporte deux fichiers à imprimer; - lorsque plusieurs noms de fichiers sont donnés en paramètres de - la commande <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry>, - ils sont traités en un seul travail d'impression. C'est le travail - en cours (ce qu'indique la mention <literal>active</literal> - dans la colonne “Rank”), ce qui signifie que - l'imprimante devrait être en train de l'imprimer.</para> - - <para>Le deuxième travail est constitué par des données passées - de l'entrée standard à la commande <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry>. - Le troisième travail vient de l'utilisateur mary; il est bien - plus volumineux. Les noms des fichiers qu'elle veut imprimer - sont trop longs, c'est pourquoi la commande <citerefentry> - <refentrytitle>lpq</refentrytitle></citerefentry> n'affiche - que trois points.</para> - - <para>La première ligne du résultat de <citerefentry> - <refentrytitle>lpq</refentrytitle></citerefentry> est aussi - utile: elle dit ce que l'imprimante est en train de faire (ou - tout du moins, ce que LPD pense qu'elle est en train de - faire).</para> - - <para>La commande <citerefentry> - <refentrytitle>lpq</refentrytitle></citerefentry> accepte - aussi l'option <option>-l</option> qui génère une sortie - détaillée. Voici un exemple de résultat de - <command>lpq -l</command>:</para> - - <informalexample> - <screen>waiting for bamboo to become ready (offline ?) - kelly: 1st [job 009rose] - /etc/host.conf 73 bytes - /etc/hosts.equiv 15 bytes - - kelly: 2nd [job 010rose] - (standard input) 1635 bytes - - mary: 3rd [job 011rose] - /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes</screen> - </informalexample> - - </sect2> - - <sect2 - id="printing-lprm"> - <title>Annuler des impressions</title> - - <para>Si vous changez d'avis quant à un travail d'impression, vous - pouvez le retirer de la file d'attente avec la commande - <citerefentry> - <refentrytitle>lprm</refentrytitle></citerefentry>. - La plupart du temps, vous pouvez même utiliser <citerefentry> - <refentrytitle>lprm</refentrytitle></citerefentry> pour - annuler une impression en cours, mais il se peut que tout ou une - partie du travail soit malgré tout imprimé.</para> - - <para>Pour annuler une impression sur l'imprimante par défaut, - utilisez - <citerefentry> - <refentrytitle>lpq</refentrytitle></citerefentry> pour connaître - le numéro du travail. Puis tapez: - <informalexample> - <screen>&prompt.user; <userinput>lprm <replaceable>numéro_du_travail</replaceable></userinput></screen> - </informalexample></para> - - <para>Pour annuler une impression sur une imprimante donnée, ajoutez - l'option <option>-P</option>. La commande qui suit retire le travail - d'impression numéro 10 de la file d'attente de l'imprimante - <hostid>bamboo</hostid>:</para> - - <informalexample> - <screen>&prompt.user; <userinput>lprm -P bamboo 10</userinput></screen> - </informalexample> - - <para>La commande <citerefentry> - <refentrytitle>lprm</refentrytitle></citerefentry> - accepte différents raccourcis:</para> - - <variablelist> - <varlistentry><term>lprm -</term> - <listitem> - <para>Annule tous les travaux (sur l'imprimante par défaut) - qui vous appartiennent.</para> - </listitem> - </varlistentry> - - <varlistentry><term>lprm <replaceable>utilisateur</replaceable></term> - - <listitem> - <para>Annule tous les travaux (sur l'imprimante par défaut) - qui appartiennent à l'<replaceable>utilisateur</replaceable>. Le - super-utilisateur peut annuler les travaux d'impression - des autres utilisateurs; vous ne pouvez retirer que vos - propres travaux.</para> - </listitem> - </varlistentry> - - <varlistentry><term>lprm</term> - - <listitem> - <para>Sans numéro de travail, nom d'utilisateur, ou - <option>-</option> sur la ligne de commande, - <citerefentry> - <refentrytitle>lprm</refentrytitle></citerefentry> retire - le travail en cours de la file d'attente de l'imprimante - par défaut, s'il vous appartient. Le super-utilisateur - peut annuler n'importe quel travail en cours.</para> - - </listitem> - </varlistentry> - </variablelist> - - <para>Employez simplement l'option <option>-P</option> avec les - raccourcis ci-dessus pour les appliquer à une autre imprimante - que l'imprimante par défaut. La commande suivante, par exemple, - retire tous les travaux de l'utilisateur courant de la file - d'attente de l'imprimante appelée <literal>rattan</literal>:</para> - - <informalexample> - <screen>&prompt.user; <userinput>lprm -P rattan -</userinput></screen> - </informalexample> - - <note> - <para>Si vous travaillez dans un environnement en réseau, vous - ne pourrez annuler de travaux avec - <citerefentry> - <refentrytitle>lprm</refentrytitle></citerefentry> - que depuis la machine à partir de laquelle ils ont été soumis, - même si l'imprimante concernée est accessible depuis d'autres - machines. C'est ce qu'illustre la séquence suivante:</para> - - <informalexample> - <screen>&prompt.user; <userinput>lpr -P rattan myfile</userinput> - &prompt.user; <userinput>rlogin orchid</userinput> - &prompt.user; <userinput>lpq -P rattan</userinput> - Rank Owner Job Files Total Size - active seeyan 12 ... 49123 bytes - 2nd kelly 13 myfile 12 bytes - &prompt.user; <userinput>lprm -P rattan 13</userinput> - rose: Permission denied - &prompt.user; <userinput>logout</userinput> - &prompt.user; <userinput>lprm -P rattan 13</userinput> - dfA013rose dequeued - cfA013rose dequeued - </screen> - </informalexample> - </note> - </sect2> - - <sect2 - id="printing-lpr-options"> - <title>Au-delà du simple texte: options d'impression</title> - - <para>La commande <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry> accepte - un certain nombre d'options qui contrôlent la mise en page, - la conversion des graphiques et d'autres formats de - fichiers, le nombre de copies, et autres. Cette section - décrit ces options.</para> - - <sect3 - id="printing-lpr-options-format"> - <title>Options de mise en page et de conversion</title> - - <para>Les options de <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry> - ci-dessous contrôlent la mise en page des fichiers d'un travail - d'impression. Utilisez-les si vos fichiers ne contiennent pas - uniquement du texte ou si vous voulez formater du texte avec - l'utilitaire <citerefentry> - <refentrytitle>pr</refentrytitle></citerefentry>.</para> - - <para>Par exemple, la commande suivante imprime un fichier DVI - (produit par le traitement de texte TeX) appelé - <filename>rapport-poissons.dvi</filename> sur l'imprimante appelée - <literal>bamboo</literal>:</para> - <informalexample> - <screen>&prompt.user; <userinput>lpr -P bamboo -d rapports-poissons.dvi</userinput></screen> - </informalexample> - - <para>Ces options sont valables pour tous les fichiers du travail - d'impression, vous ne pouvez donc pas mélanger des fichiers - DVI et ditroff (par exemple). Vous devez les soumettre dans des - travaux séparés avec des options de conversion différentes pour - chaque travail.</para> - - <note> - <para>Toutes ces options, sauf <option>-p</option> et - <option>-T</option> impliquent que les filtres de conversion - soient installés pour les imprimantes utilisées. Pour l'option - <option>-d</option>, par exemple, il faut le filtre de - conversion DVI. La section <link - linkend="printing-advanced-convfilters">Filtres de conversion</link> - vous explique cela en détail.</para> - </note> - - - <variablelist> - <varlistentry><term><option>-c</option></term> - <listitem> - <para>Imprime des fichiers cifplot.</para> - </listitem> - </varlistentry> - - <varlistentry><term><option>-d</option></term> - - <listitem> - <para>Imprime des fichiers DVI.</para> - </listitem> - </varlistentry> - - <varlistentry><term><option>-f</option></term> - - <listitem> - <para>Imprime des programmes FORTRAN.</para> - </listitem> - </varlistentry> - - <varlistentry><term><option>-g</option></term> - - <listitem> - <para>Imprime des graphiques pour un traceur (“plot”).</para> - </listitem> - </varlistentry> - - <varlistentry><term><option>-i<replaceable>nombre</replaceable></option></term> - - <listitem> - <para>Indente la sortie de <replaceable>nombre</replaceable> de colonnes; si vous ne précisez pas - <replaceable>nombre</replaceable>, indente de 8 - colonnes. Cette option ne s'applique qu'à certains filtres - de conversion.</para> - - <note> - <para>Ne mettez pas de blanc entre - <option>-i</option> et le nombre.</para> - </note> - </listitem> - </varlistentry> - - <varlistentry><term><option>-l</option></term> - - <listitem> - <para>Imprime le texte tel quel, y compris les caractères - de contrôle.</para> - </listitem> - </varlistentry> - - <varlistentry><term><option>-n</option></term> - - <listitem> - <para>Imprime des données ditroff (troff indépendant du - périphérique - “device independent troff”).</para> - </listitem> - </varlistentry> - - <varlistentry><term>-p</term> - - <listitem> - <para>Formate du texte avec <citerefentry> - <refentrytitle>pr</refentrytitle></citerefentry> - avant de l'imprimer. Voyez <citerefentry><refentrytitle>pr</refentrytitle><manvolnum>1</manvolnum></citerefentry> pour plus informations.</para> - </listitem> - </varlistentry> - - <varlistentry><term><option>-T - <replaceable>titre</replaceable></option></term> - - <listitem> - <para>Utilise <replaceable>titre</replaceable> comme en-tête - <citerefentry> - <refentrytitle>pr</refentrytitle></citerefentry> - au lieu du nom de fichier. Cette option ne s'applique qu'avec - l'option <option>-p</option>.</para> - </listitem> - </varlistentry> - - <varlistentry><term><option>-t</option></term> - - <listitem> - <para>Imprime des données troff.</para> - </listitem> - </varlistentry> - - <varlistentry><term><option>-v</option></term> - - <listitem> - <para>Imprime des images point par point.</para> - </listitem> - </varlistentry> - </variablelist> - - - <para>Voici un exemple: cette commande imprime une version proprement - formatée des pages de manuel de <citerefentry> - <refentrytitle>ls</refentrytitle></citerefentry> - sur l'imprimante par défaut:</para> - - <informalexample> - <screen>&prompt.user; <userinput>zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t</userinput></screen> - </informalexample> - - <para>La commande <citerefentry> - <refentrytitle>zcat</refentrytitle></citerefentry> - décompresse le source des pages de manuel de <citerefentry> - <refentrytitle>ls</refentrytitle></citerefentry> et les passe - à la commande <citerefentry> - <refentrytitle>troff</refentrytitle></citerefentry>, - qui les convertit au format GNU troff et le passe à - <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry>, - qui soumet le travail au gestionnaire d'impression. Comme nous avons - utilisé l'option <option>-t</option> de la commande - <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry>, le gestionnaire - d'impression convertira le format GNU troff en un format compréhensible - par l'imprimante.</para> - - </sect3> - - <sect3 - id="printing-lpr-options-job-handling"> - <title>Options de traitement</title> - - <para>Les options <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry> qui suivent - indiquent à LPD les traitements particuliers à appliquer à un - travail d'impression:</para> - - <para> - <variablelist> - <varlistentry><term>-# <replaceable>nombre</replaceable></term> - <listitem> - <para>Produit le <replaceable>nombre</replaceable> de copies - de chaque fichier du travail d'impression, au lieu d'une - seule. L'administrateur peut désactiver cette option pour - réduire l'usure de l'imprimante et encourager l'utilisation - de la photocopieuse. Reportez-vous à la section <link - linkend="printing-advanced-restricting-copies">Restreindre - l'impression de plusieurs exemplaires</link>.</para> - - <para>Cet exemple imprime trois exemplaires du fichier - <filename>analyseur.c</filename> suivis de trois exemplaires - de <filename>analyseur.h</filename> sur l'imprimante par - défaut:</para> - - <informalexample> - <screen>&prompt.user; <userinput>lpr -#3 analyseur.c analyseur.h</userinput></screen> - </informalexample> - </listitem> - </varlistentry> - - <varlistentry><term>-m</term> - - <listitem> - <para>Envoie un courrier électronique à la fin du travail - d'impression. Avec cette option, LPD vous envoie un - courrier électronique quand il a fini de traiter votre - travail d'impression. Son message vous dit si le travail - s'est normalement déroulé ou s'il y a eu une erreur, et - (la plupart du temps) quelle était l'erreur.</para> - </listitem> - </varlistentry> - - <varlistentry><term>-s</term> - - <listitem> - <para>Ne recopie pas les fichiers dans le répertoire tampon, mais - utilise des liens symboliques.</para> - - <para>Vous utiliserez certainement cette option si vous avez - des travaux d'impression volumineux. Cela fait gagner de la place - dans le répertoire tampon (votre travail pourrait saturer le - système de fichiers où se trouve le répertoire tampon). Cela fait - aussi gagner du temps, car LPD n'a pas besoin de recopier votre - travail d'impression dans le répertoire tampon.</para> - - <para>Il y a cependant une restriction: comme LPD utilisera les - fichiers d'origine, vous ne pourrez pas les modifier ou les - supprimer avant qu'ils aient été imprimés.</para> - - <note> - <para>Si vous imprimez sur une imprimante à distance, LPD - copiera les fichiers de la machine locale - vers la machine distante, donc l'option <option>-s</option> - ne fera gagner de place que sur la machine locale, - mais pas sur la machine distante. Cela reste néanmoins - utile.</para> - </note> - </listitem> - </varlistentry> - - <varlistentry><term>-r</term> - - <listitem> - <para>Détruit les fichiers après les avoir copiés dans le - répertoire tampon, ou après les avoir imprimés avec l'option - <option>-s</option>. Soyez prudents avec cette - option!</para> - </listitem> - </varlistentry> - </variablelist> - </para> - - </sect3> - - <sect3 - id="printing-lpr-options-misc"> - <title>Options pour la page d'en-tête</title> - - <para>Ces options de <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry> - influent sur le texte qui est normalement imprimé sur la page - d'en-tête du travail d'impression. Si les pages d'en-tête sont - désactivées pour l'imprimante destinataire, ces options n'ont - pas d'effet. Voyez la section <link - linkend="printing-advanced-header-pages">Pages d'en-tête</link> - pour savoir comment gérer les pages d'en-tête.</para> - - - <variablelist> - <varlistentry><term>-C <replaceable>texte</replaceable></term> - <listitem> - <para>Remplace le nom de machine sur la page d'en-tête par - <replaceable>texte</replaceable>. Le nom de machine est - normalement celui de la machine d'où le travail a été - soumis.</para> - </listitem> - </varlistentry> - - <varlistentry><term>-J <replaceable>texte</replaceable></term> - - <listitem> - <para>Remplace le nom du travail sur la page d'en-tête par - <replaceable>texte</replaceable>. Le nom du travail est - normalement le nom du premier fichier à imprimer, ou - <filename>stdin</filename> si vous imprimez depuis l'entrée - standard.</para> - </listitem> - </varlistentry> - - <varlistentry><term>-h</term> - - <listitem> - <para>N'imprime pas de page d'en-tête.</para> - - <note> - <para>Sur certains sites, cette option n'a pas d'effet, selon - la façon dont les pages d'en-tête sont générées. Voyez la section - <link - linkend="printing-advanced-header-pages">Pages d'en-tête</link> - pour plus de détails.</para> - </note> - </listitem> - </varlistentry> - </variablelist> - - - </sect3> -</sect2> - -<sect2 - id="printing-lpc"> - <title>Administrer les imprimantes</title> - - <para>En tant qu'administrateur de vos imprimantes, vous avez dû les - installer, les configurer et les tester. Avec la commande <citerefentry> - <refentrytitle>lpc</refentrytitle></citerefentry>, - vous pouvez encore agir d'autres façons sur vos imprimantes. Avec - <citerefentry> - <refentrytitle>lpc</refentrytitle></citerefentry>, vous - pouvez:</para> - - <para> - <itemizedlist> - - <listitem> - <para>Démarrer et arrêter les imprimantes.</para> - </listitem> - - <listitem> - <para>Activer et désactiver leurs files d'attente.</para> - </listitem> - - <listitem> - <para>Réordonner les travaux de chaque file d'attente.</para> - </listitem> - - </itemizedlist> - </para> - - <para>Une remarque tout d'abord sur la terminologie: si une imprimante est - <emphasis>arrêtée</emphasis>, elle n'imprimera plus rien de ce qui se trouve - dans sa file d'attente. Les utilisateurs peuvent toujours soumettre leurs - travaux, qui attendront dans la file d'attente que l'imprimante soit - <emphasis>redémarrée</emphasis> ou la file d'attente vidée.</para> - - <para>Si une file d'attente est <emphasis>désactivée</emphasis>, aucun - utilisateur (sauf le super-utilisateur) ne peut soumettre de travail à cette imprimante. Une - file d'attente <emphasis>active</emphasis> autorise la soumission de - travaux d'impression. Une imprimante peut être <emphasis>démarrée</emphasis> - pour une file d'attente inactive, auquel cas, elle continue à imprimer les - travaux jusqu'à ce que la file d'attente soit vidée.</para> - - <para>En général, vous devrez avoir les droits du super-utilisateur pour utiliser la - commande <citerefentry> - <refentrytitle>lpc</refentrytitle></citerefentry>. Les utilisateurs - ordinaires ne peuvent utiliser <citerefentry> - <refentrytitle>lpc</refentrytitle></citerefentry> que pour interroger - l'état d'une imprimante et redémarrer une imprimante qui s'est - interrompue.</para> - - <para>Voici un résumé des commandes <citerefentry> - <refentrytitle>lpc</refentrytitle></citerefentry>. - La plupart de ces commandes prennent un argument - <replaceable>imprimante</replaceable> qui dit à quelle imprimante - elles s'appliquent. Vous pouvez utiliser l'argument <literal>all</literal> - comme <replaceable>imprimante</replaceable> pour qu'elles s'appliquent - à toutes les imprimantes listées dans le fichier - <filename>/etc/printcap</filename>.</para> - - - <variablelist> - <varlistentry><term><command>abort - <replaceable>imprimante</replaceable></command></term> - <listitem> - <para>Annule le travail en cours et arrête l'imprimante. - Les utilisateurs peuvent toujours soumettre leurs travaux si la - file d'attente est active.</para> - </listitem> - </varlistentry> - - <varlistentry><term><command>clean - <replaceable>imprimante</replaceable></command></term> - - <listitem> - <para>Nettoie le repertoire tampon. Il arrive que les fichiers - associés à un travail d'impression ne soient pas correctement - supprimés par LPD, en particulier s'il s'est produit des - erreurs lors de l'impression ou s'il y a eu beaucoup d'activité - d'administration. Cette commande recherche les fichiers qui - n'ont plus lieu d'être dans le répertoire tampon et les - supprime.</para> - </listitem> - </varlistentry> - - <varlistentry><term><command>disable - <replaceable>imprimante</replaceable></command></term> - - <listitem> - <para>Interdit la mise en file d'attente de nouveaux travaux. Si - l'imprimante est active, elle continuera à imprimer les travaux - qui y sont déjà. Le super-utilisateur (root) peut toujours - soumettre des travaux d'impression, même à une file d'attente - désactivée.</para> - - <para>Cette commande est utile si vous testez une nouvelle - imprimante ou un nouveau filtre: désactivez la file - d'attente et soumettez vos travaux en étant super-utilisateur. Les - autres utilisateurs ne pourront pas soumettre de travaux - tant que vous n'aurez pas fini vos tests et réactivé la - file d'attente avec la commande <command>enable</command>.</para> - </listitem> - </varlistentry> - - <varlistentry><term><command remap="tt">down - <replaceable>imprimante</replaceable> - <replaceable>message</replaceable></command></term> - - <listitem> - <para>Arrête complètement une imprimante. C'est l'équivalent de - <command>disable</command> suivie de - <command>stop</command>. Le <replaceable>message</replaceable> - est affiché quand un utilisateur interroge l'état de la file - d'attente avec la commande <citerefentry> - <refentrytitle>lpq</refentrytitle></citerefentry> - ou <command>lpc status</command>.</para> - </listitem> - </varlistentry> - - <varlistentry><term><command>enable - <replaceable>imprimante</replaceable></command></term> - - <listitem> - <para>Active la file d'attente d'une imprimante. Les utilisateurs - peuvent soumettre leurs travaux, mais ils ne seront imprimés que - quand l'imprimante aura été démarrée.</para> - </listitem> - </varlistentry> - - <varlistentry><term><command remap="tt">help - <replaceable>commande</replaceable></command></term> - - <listitem> - <para>Affiche de l'aide sur la - <replaceable>commande</replaceable>. Sans - <replaceable>commande</replaceable>, affiche un résumé des - commandes disponibles.</para> - </listitem> - </varlistentry> - - <varlistentry><term><command>restart - <replaceable>imprimante</replaceable></command></term> - - <listitem> - <para>Démarre l'imprimante. Les utilisateurs normaux peuvent utiliser - cette commande si des circonstances extraordinaires interrompent - le bon fonctionnement de LPD, mais ils ne peuvent pas l'employer - pour redémarrer une imprimante arrêtée avec la commande - <command>stop</command> ou <command>down</command>. - La commande <command>restart</command> - est l'équivalent de <command>abort</command> suivie de - <command>start</command>.</para> - </listitem> - </varlistentry> - - <varlistentry><term><command>start - <replaceable>imprimante</replaceable></command></term> - - <listitem> - <para>Démarre l'imprimante. Elle imprimera les travaux de sa file - d'attente.</para> - </listitem> - </varlistentry> - - <varlistentry><term><command>stop - <replaceable>imprimante</replaceable></command></term> - - <listitem> - <para>Arrête l'imprimante. Elle terminera l'impression du travail en - cours puis cessera d'imprimer ce qui se trouve dans sa file - d'attente. Même si l'imprimante est arrêtée, les utilisateurs - peuvent toujours soumettre des travaux à une file d'attente - active.</para> - </listitem> - </varlistentry> - - <varlistentry><term><command>topq - <replaceable>imprimante</replaceable> - <replaceable>travaux_ou_utilisateur</replaceable></command></term> - - <listitem> - <para>Réordonne la file d'attente de - l'<replaceable>imprimante</replaceable> en plaçant les - <replaceable>travaux</replaceable> dont les numéros sont donnés - ou ceux qui appartiennent à l'<replaceable>utilisateur</replaceable> - en tête de la file. Vous ne pouvez pas utiliser - <literal>all</literal> comme <replaceable>imprimante</replaceable> - avec cette commande.</para> - </listitem> - </varlistentry> - - <varlistentry><term><command>up - <replaceable>imprimante</replaceable></command></term> - - <listitem> - <para> Met en service une <replaceable>imprimante</replaceable>. C'est - l'inverse de la commande <command>down</command> et équivaut à - <command>start</command> suivie de <command>enable</command>.</para> - </listitem> - </varlistentry> - </variablelist> - - - <para><citerefentry> - <refentrytitle>lpc</refentrytitle></citerefentry> accepte toutes les - commandes précédentes depuis la ligne de commande. Si vous ne donnez - aucune commande, <citerefentry> - <refentrytitle>lpc</refentrytitle></citerefentry> passe en mode interactif - et vous pouvez entrer vos commandes jusqu'à ce que vous tapiez - <command>exit</command>, <command>quit</command>, ou fin_de_fichier.</para> - -</sect2> -</sect1> - -<sect1 -id="printing-advanced"> -<title>Configuration avancée d'une imprimante</title> - -<para>Cette section décrit les filtres pour des formatages particuliers, - les pages d'en-tête, l'impression en réseau, les restrictions et la - comptabilisation de l'utilisation des imprimantes.</para> - - -<sect2 - id="printing-advanced-filter-intro"> - <title>Filtres</title> - - <para>Bien que LPD prenne en charge le protocole réseau, la gestion de la - file d'attente, le contrôle d'accès et d'autres aspects des tâches - d'impression, la plupart du travail <emphasis>effectif</emphasis> est - confié aux <emphasis>filtres</emphasis>. Les filtres sont des programmes - qui communiquent avec l'imprimante et se chargent de leurs caractéristiques - et exigences particulières. Lors de la configuration simple, nous avons - installé un filtre texte - un filtre très élémentaire qui devrait - marcher avec la plupart des imprimantes. - (cf. section <link linkend="printing-textfilter">Installer le filtre - texte</link>).</para> - - <para>Cependant, pour profiter de la conversion de format, de la - comptabilisation des impressions, des particularités de certaines - imprimantes, et ainsi de suite, il est utile de comprendre comment - fonctionnent les filtres. En dernier ressort, ce sont les filtres - qui gèreront ces fonctionnalités. La mauvaise nouvelle est que la - plupart du temps, <emphasis>vous</emphasis> devrez vous-même fournir - ces filtres. La bonne nouvelle est que beaucoup sont déjà disponibles; - quand ce n'est pas le cas, ils sont en général faciles à écrire.</para> - - <para>FreeBSD est aussi livré avec un filtre, - <filename>/usr/libexec/lpr/lpf</filename>, qui fonctionne avec nombre - d'imprimantes capables d'imprimer du texte. (Il gère les retours arrière, - les tabulations et la comptabilité, mais c'est à peu près tout ce qu'il - fait.) Il y a aussi plusieurs filtres ou composants de filtres au catalogue - des logiciels portés.</para> - - <para>Voici ce que vous trouverez dans cette section:</para> - - <itemizedlist> - - <listitem> - <para>La section <link linkend="printing-advanced-filters">Comment - fonctionnent les filtres</link> essaie de vous donner une vue d'ensemble - du rôle du filtre dans le processus d'impression. Vous devriez - lire cette section pour comprendre ce qui se passe - “dans la coulisse” quand LPD utilise les filtres. Cela - peut vous aider à anticiper et remédier aux problèmes que vous - rencontrerez au fur et à mesure que vous installerez de plus en - plus de filtres sur chacune de vos imprimantes.</para> - </listitem> - - <listitem> - <para>LPD s'attend à ce que, par défaut, chaque imprimante soit - capable d'imprimer du texte. C'est un problème avec les - imprimantes PostScript (ou d'autres imprimantes qui utilisent - un langage d'impression), qui ne savent pas imprimer - directement du texte. La section <link - linkend="printing-advanced-if-conversion">Imprimer - du texte sur des imprimantes PostScript</link> - vous explique comment résoudre ce problème. - Je vous recommande de la lire si vous avez une imprimante - PostScript.</para> - </listitem> - - <listitem> - <para>PostScript est un format de sortie populaire pour - beaucoup de programmes. Certaines personnes (moi y-compris) - écrivent directement du code PostScript. Mais les imprimantes - PostScript sont chères. La section - <link linkend="printing-advanced-ps">Emuler - PostScript sur des imprimantes Non-PostScript</link> - vous explique comment vous pouvez ajuster le filtre texte - d'une imprimante pour accepter et imprimer des données - PostScript sur une imprimante qui n'est - <emphasis>pas PostScript</emphasis>. Je vous recommande - de le lire si vous n'avez pas d'imprimante PostScript.</para> - </listitem> - - <listitem> - <para>La section <link linkend="printing-advanced-convfilters">Filtres - de conversion</link> vous donne une méthode pour - automatiser la conversion de formats de fichiers particuliers, - comme des données graphiques ou issues d'un traitement de - texte, vers un format compréhensible pour votre imprimante. - Après avoir lu cette section, vous devriez être capable de - configurer vos imprimantes pour que les utilisateurs puissent - taper <command>lpr -t</command> pour imprimer des données - troff, <command>lpr -d</command> pour imprimer des données - DVI produit par TeX, ou <command>lpr -v</command> - pour imprimer des images point à point, et ainsi de suite. Je - conseille la lecture de cette section.</para> - </listitem> - - <listitem> - <para>La section <link linkend="printing-advanced-of">Filtres - de sortie</link> introduit une possibilité - rarement utilisée de LPD: les filtres de sortie. A moins - que vous n'imprimiez des pages d'en-tête (voyez la section <link - linkend="printing-advanced-header-pages">Pages d'en-tête</link>), - vous pouvez probablement sauter - cette section.</para> - </listitem> - - <listitem> - <para>La section <link linkend="printing-advanced-lpf"><command>lpf</command>: - un filtre texte</link> décrit <command>lpf</command>, - un filtre texte assez complet, quoique simple, pour les - imprimantes ligne (et les imprimantes laser qui fonctionnent - comme des imprimantes ligne) et qui est livré avec FreeBSD. - S'il vous faut un moyen simple pour comptabiliser le - fonctionnement d'une imprimante en mode texte, ou si vous - avez une imprimante qui fume lorsqu'elle aperçoit un retour - arrière, vous devriez absolument envisager d'utiliser - <command>lpf</command>.</para> - </listitem> - - </itemizedlist> - - <sect3 - id="printing-advanced-filters"> - <title>Comment fonctionnent les filtres</title> - - <para>Comme expliqué plus haut, un filtre est un programme - exécuté par LPD pour gérer ce qui dépend de l'imprimante - dans la communication avec celle-ci.</para> - - <para>Quand LPD veut imprimer un fichier appartenant à un travail - d'impression, il démarre un programme de filtre. Il affecte à - l'entrée standard du filtre le fichier à imprimer, à sa sortie - standard l'imprimante et à son fichier d'erreur standard le - fichier de trace (défini par la fonctionnalité - <literal>lf</literal> de <filename>/etc/printcap</filename>, ou - <filename>/dev/console</filename> par défaut).</para> - - <para>Quel filtre LPD utilise et avec quels arguments dépend du - contenu du fichier <filename>/etc/printcap</filename> et des - arguments qu'a donnés l'utilisateur sur la ligne de commande de - <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry> pour ce - travail d'impression. Par exemple, s'il a utilisé - <command>lpr -t</command>, LPD démarrera le filtre troff, indiqué - par la fonctionnalité <literal>tf</literal> pour l'imprimante - destinataire. Si l'utilisateur veut imprimer du texte, il lancera - le filtre <literal>if</literal> (c'est vrai la plupart du temps, - voyez la section <link linkend="printing-advanced-of">Filtres de sortie</link> - pour plus de détails).</para> - - <para>Il y a trois sortes de filtres que vous pouvez définir dans - <filename>/etc/printcap</filename>:</para> - - <itemizedlist> - - <listitem> - <para>Le <emphasis>filtre texte</emphasis>, inexactement - appelé <emphasis>filtre d'entrée</emphasis> dans la - documentation de LPD, se charge de l'impression du texte - ordinaire. Considérez-le comme le filtre par défaut. LPD - suppose que toutes les imprimantes savent par défaut - imprimer du texte, et c'est le rôle du filtre texte - de faire en sorte que les retours arrière, tabulations - et autres caractères spéciaux ne posent pas de problèmes - à l'imprimante. Si vous êtes dans un environnement où vous - devez comptabiliser l'utilisation des imprimantes, le - filtre texte doit aussi s'en charger, habituellement en - comptant le nombre de lignes et en le comparant au nombre - de lignes par page accepté par l'imprimante. Le filtre texte - est exécuté avec les arguments suivants: - - <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>hôte</replaceable></arg> - <arg choice="plain"><replaceable>fichier_comptable</replaceable></arg> - </cmdsynopsis> où: - - <variablelist> - <varlistentry><term><option>-c</option></term> - <listitem> - <para>est utilisé si le travail a été soumis par - <command>lpr -l</command>,</para> - </listitem> - </varlistentry> - - <varlistentry><term><replaceable>largeur</replaceable></term> - - <listitem> - <para>est la valeur donnée avec la fonctionnalité - <literal>pw</literal> (largeur de page - “page width”) - dans <filename>/etc/printcap</filename>, - 132 par défaut,</para> - </listitem> - </varlistentry> - - <varlistentry><term><replaceable>length</replaceable></term> - - <listitem> - <para>est la valeur indiquée par la fonctionnalité - <literal>pl</literal> (hauteur de page - “page length”), 66 par - défaut,</para> - </listitem> - </varlistentry> - - <varlistentry><term><replaceable>indentation</replaceable></term> - - <listitem> - <para>indentation précisée par - <command>lpr -i</command>, 0 par défaut,</para> - </listitem> - </varlistentry> - - <varlistentry><term><replaceable>utilisateur</replaceable></term> - - <listitem> - <para>est le nom (de session) de l'utilisateur imprimant le fichier,</para> - </listitem> - </varlistentry> - - <varlistentry><term><replaceable>hôte</replaceable></term> - - <listitem> - <para>est le nom de la machine d'où le travail a été - soumis,</para> - </listitem> - </varlistentry> - - <varlistentry><term><replaceable>fichier_comptable</replaceable></term> - - <listitem> - <para>est le nom du fichier de comptabilité spécifé - par la fonctionnalité <literal>af</literal>.</para> - </listitem> - </varlistentry> - </variablelist> - - </para> - </listitem> - - <listitem> - <para>Un <emphasis>filtre de conversion</emphasis> convertit - un format de fichier particulier en un format que - l'imprimante comprend. Par exemple, des données provenant - du traitement de texte ditroff ne peuvent pas être - imprimées directement, mais vous pouvez installer un - filtre de conversion pour les fichiers ditroff pour - transformer les fichiers ditroff de façon à ce que - l'imprimante les digère et les imprime. La section - <link linkend="printing-advanced-convfilters">Filtres de conversion</link> - vous dit tout ce que vous - devez savoir sur ces filtres. Les filtres de conversion - doivent aussi gérer la comptabilité, si vous en avez besoin. - Les filtres de conversion sont exécutés avec les arguments - suivants: - - <cmdsynopsis> - <command>nom_du_filtre</command> - <arg - choice="plain">-x<replaceable>largeur_du_pixel</replaceable></arg> - <arg choice="plain">-y<replaceable>hauteur_du_pixel</replaceable></arg> - <arg choice="plain">-n <replaceable>utilisateur</replaceable></arg> - <arg choice="plain">-h <replaceable>hôte</replaceable></arg> - <arg choice="plain"><replaceable>fichier_comptable</replaceable></arg> - </cmdsynopsis> où <replaceable>largeur_du_pixel</replaceable> est la valeur - définie par la fonctionnalité - <literal>px</literal> (0 par défaut) - et <replaceable>hauteur_du_pixel</replaceable> celle définie - par <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 que les pages - d'en-tête sont activées. D'après mon expérience personnelle, - les filtres de sortie sont rarement utilisés. La section - <link linkend="printing-advanced-of">Filtres de sortie</link> - les décrit. Un filtre de sortie n'a que deux - arguments: - - <cmdsynopsis> - <command>nom_du_filtre</command> - <arg choice="plain">-w<replaceable>largeur</replaceable></arg> - <arg choice="plain">-l<replaceable>hauteur</replaceable></arg> - </cmdsynopsis> qui sont identiques aux arguments - <option>-w</option> et <option>-l</option> - du filtre texte.</para> - </listitem> - - </itemizedlist> - - <para>Les filtres doivent aussi retourner - (“exit”) avec l'un des codes retour - suivants:</para> - - <variablelist> - <varlistentry><term>exit 0</term> - <listitem> - <para>Le filtre a correctement imprimé le fichier.</para> - </listitem> - </varlistentry> - - <varlistentry><term>exit 1</term> - - <listitem> - <para>Le filtre n'a pas pu imprimer le fichier mais veut - que LPD tente une nouvelle impression. LPD relancera - le filtre s'il retourne ce code.</para> - </listitem> - </varlistentry> - - <varlistentry><term>exit 2</term> - - <listitem> - <para>Le filtre n'a pas pu imprimer le fichier et ne veut - pas que LPD relance l'impression. LPD supprimera le - fichier de la file d'attente.</para> - - </listitem> - </varlistentry> - </variablelist> - - <para>Le filtre texte livré avec la distribution de FreeBSD, - <filename>/usr/libexec/lpr/lpf</filename>, utilise les arguments - définissant la largeur et la hauteur de page pour déterminer - quand envoyer un saut de page et pour gérer la comptabilité. Il - se sert du nom d'utilisateur, du nom de machine et de celui du - fichier comptable pour tenir à jour les enregistrements - comptables.</para> - - <para>Si vous cherchez des filtres, vérifiez qu'ils sont - compatibles avec LPD. S'ils le sont, ils doivent accepter les - arguments décrits ci-dessus. Si vous envisagez d'écrire des - filtres, vous devez faire en sorte qu'ils acceptent ces arguments - et gèrent les bons codes retour.</para> - - </sect3> - - <sect3 - id="printing-advanced-if-conversion"> - <title>Imprimer du texte sur des imprimantes PostScript - </title> - - <para>Si vous êtes le seul utilisateur de votre ordinateur et d'une - imprimante PostScript (ou d'une autre imprimante fonctionnant - avec un langage d'impression) et êtes certain de ne jamais envoyer - de simples fichiers texte à l'imprimante ou de ne jamais utiliser - les options de différents programmes qui feraient de même, alors - vous n'avez pas besoin de vous préoccuper du contenu de cette - section.</para> - - <para>Mais, si vous voulez envoyer et du PostScript et de simples - fichiers texte à l'imprimante, alors je vous conjure d'adapter - la configuration de votre imprimante. Pour cela, nous ferons en - sorte que le filtre texte distingue entre les travaux d'impression - qui envoient du texte et ceux qui envoient du PostScript. Tous les - travaux PostScript commencent par <literal>%!</literal> (pour les - autres langages, consultez la documentation de votre imprimante). - Si nous avons ces deux caractères au début du travail d'impression, - alors c'est du PostScript, et nous pouvons l'envoyer tel quel. - Sinon, le filtre convertira le texte en PostScript et imprimera - le résultat.</para> - - <para>Comment réaliser cela?</para> - - <para>Avec une imprimante série, il suffit d'installer - <command>lprps</command>. <command>lprps</command> est un filtre - d'impression PostScript qui dialogue avec l'imprimante. Il met à - jour le fichier d'état de l'imprimante en fonction des - informations que celle-ci lui fournit, les utilisateurs et les - administrateurs peuvent donc savoir exactement quel est l'état - de l'imprimante (comme <errorname>manque d'encre</errorname> ou - <errorname>bourrage</errorname>). Mais, c'est plus intéressant, - il comporte un programme appelé <command>psif</command> qui - détecte si le prochain travail est du texte et invoque - <command>textps</command> (un autre programme qui fait partie de - <command>lprps</command>) pour le convertir en PostScript. Il - utilise ensuite <command>lprps</command> pour l'envoyer à - l'imprimante.</para> - - <para><command>lprps</command> fait partie du catalogue des - logiciels portés de FreeBSD (voyez le chapitre - <link linkend="ports">Installer des Logiciels au “Catalogue des - Logiciels Portés”</link>). Vous - pouvez le télécharger, le compiler et - l'installer vous-même, bien sûr. Après avoir installé - <command>lprps</command>, donnez juste le chemin d'accès au - programme <command>psif</command> qui fait partie de - <command>lprps</command>. Si vous avez installé - <command>lprps</command> depuis le catalogue des logiciels portés, - utilisez ce qui suit dans la définition de l'imprimante série - PostScript dans <filename>/etc/printcap</filename>:</para> - - <programlisting> -:if=/usr/local/libexec/psif: - </programlisting> - - <para>Vous devez aussi activer la fonctionnalité - <literal>rw</literal> qui dit à LPD d'ouvrir l'imprimante - en lecture/écriture.</para> - - <para>Si vous avez une imprimante PostScript parallèle (et donc - ne pouvez pas communiquer dans les deux sens avec l'imprimante, - ce qui est indispensable à <command>lprps</command>), vous pouvez - utilisez la procédure qui suit comme filtre texte:</para> - - <programlisting> -#!/bin/sh -# -# psif - Imprime du PostScript ou du texte -# version Procédure; Ce N'EST PAS la version qui accompagne lprs -# fichier /usr/local/libexec/psif -# - -read first_line -first_two_chars=`expr "$first_line" : '\(..\)'` - -if [ "$first_two_chars" = "%!" ]; then - # - # Travail PostScript; l'imprimer. - # - echo $first_line && cat && printf "\004" && exit 0 - exit 2 -else - # - # Texte simple, le convertir, puis l'imprimer. - # - ( echo $first_line; cat ) | /usr/local/bin/textps && printf "\004" && 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 utiliser le programme de - conversion de votre choix. Le catalogue des logiciels portés de FreeBSD - (voyez le chapitre <link linkend="ports">Installer des Logiciels - au “Catalogue des Logiciels Portés”</link>) - comporte un programme complet de conversion de - texte en PostScript appelé <citerefentry> - <refentrytitle>a2ps</refentrytitle></citerefentry> auquel vous - pourriez jeter un coup d'oeil.</para> - - </sect3> - - <sect3 - id="printing-advanced-ps"> - <title>Emuler PostScript sur des imprimantes Non-PostScript - </title> - - <para>PostScript est le standard <emphasis>de facto</emphasis> - du traitement de texte et de l'impression de qualité. PostScript - est, toutefois, un standard <emphasis>coûteux</emphasis>. - Heureusement, Alladin Enterprises fournit un émulateur PostScript - libre, appelé <application>Ghostscript</application>, qui - fonctionne sous FreeBSD. Ghostscript peut lire - la plupart des fichiers PostScript - et les convertir pour divers modèles d'imprimantes dont de - nombreuses imprimantes non-PostScript. En installant Ghostscript - et avec un filtre texte adapté à votre imprimante, vous pouvez - utiliser votre imprimante comme une vraie imprimante - PostScript.</para> - - <para>Ghostscript devrait être dans le catalogue des logiciels portés - de FreeBSD, d'où vous pouvez l'installer. Vous pouvez aussi - facilement le télécharger, le compiler et l'installer.</para> - - <para>Pour émuler PostScript, nous ferons en sorte que le filtre - texte reconnaisse les fichiers PostScript. Quand ce n'est pas le - cas, le filtre enverra directement le fichier à l'imprimante. - Sinon, il utilisera Ghostscript pour convertir le fichier - en un format que l'imprimante comprenne.</para> - - <para>Voici un exemple: cette procédure est un filtre texte pour les - imprimantes Hewlett Packard DeskJet 500. Pour d'autres - imprimantes, modifiez l'argument de l'option - <option>-sDEVICE</option> de la commande - <citerefentry> - <refentrytitle>gs</refentrytitle></citerefentry> (Ghostscript). - (Tapez <command>gs -h</command> pour avoir la liste des - périphériques supportés par la version courante de - Ghostscript.)</para> - - <programlisting> -#!/bin/sh -# -# ifhp - Imprime du PostSCript émulé par Ghostscript sur une DeskJet 500 -# fichier /usr/local/libexec/hpif -# -# traiter LF comme CR+LF: -# -printf "\033&k2G" || exit 2 - -# -# Lit les deux premiers caractères du fichier -# -read first_line -first_two_chars=`expr "$first_line" : '\(..\)'` - -if [ "$first_two_chars" = "%!" ]; then - # - # Si c'est du PostScript; utiliser Ghostscript pour convertir, et imprimer. - # - /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 -sOutputFile=- - \ - && exit 0 -else - # - # Texte ou HP/PCL, donc, imprimer directement; envoyer ensuite un saut - # de page pour éjecter la dernière page. - # - echo $first_line && cat && printf "\f" && exit 0 -fi - -exit 2 - </programlisting> - - <para>Pour finir, il faut spécifier le filtre à LPD avec - la fonctionnalité <literal remap="tt">if</literal>: - <programlisting> -:if=/usr/local/libexec/hpif: - </programlisting> C'est tout. Vous pouvez maintenant taper - <command>lpr texte.simple</command> et <command>lpr - quoique-ce-soit.ps</command> et les deux devraient - s'imprimer.</para> - - </sect3> - - <sect3 - id="printing-advanced-convfilters"> - <title>Filtres de conversion</title> - - <para>Après avoir terminé l'étape de - <link linkend="printing-simple">Configuration simple d'une imprimante</link>, la - première chose que vous voudrez probablement faire sera - d'installer des filtres de conversion pour vos formats de - fichiers favoris (autres que le simple texte ASCII).</para> - - - <sect4> - <title>Pourquoi installer des filtres de conversion?</title> - - <para>Les filtres de conversion facilitent l'impression de - différents types de fichiers. Supposons, par exemple, que - nous utilisions beaucoup le logiciel de traitement de texte - TeX, et que nous ayons une imprimante PostScript. Chaque fois - que nous générons un fichier DVI avec TeX, nous ne pouvons - l'imprimer directement sans le convertir auparavant en - PostScript. La séquence de commande pour le faire est la - suivante:</para> - - <informalexample> - <screen>&prompt.user; <userinput>dvips anaylse-algues.dvi</userinput> -&prompt.user; <userinput>lpr analyse-algues.ps</userinput></screen> - </informalexample> - - <para>En installant un filtre de conversion pour les fichiers - DVI, nous pourrons nous dispenser de la conversion manuelle - à chaque fois, en laissant LPD le faire à notre place. Quand nous aurons - un fichier DVI, l'impression se fera en une seule étape:</para> - - <informalexample> - <screen>&prompt.user; <userinput>lpr -d analyse-algues.dvi</userinput></screen> - </informalexample> - - <para>L'option <option>-d</option> dit à LPD que c'est un - fichier DVI à convertir. La section - <link - linkend="printing-lpr-options-format">Options de mise en page et de conversion</link> - liste les options de conversion.</para> - - <para>Pour chaque option de conversion que vous voulez que - l'imprimante supporte, installez un - <emphasis>filtre de conversion</emphasis> et donnez son chemin - d'accès dans <filename>/etc/printcap</filename>. Un - filtre de conversion est similaire au filtre texte de notre - configuration simple - (voir section <link linkend="printing-textfilter">Installer - le filtre texte</link>) sinon qu'au lieu - d'imprimer du texte, il convertit le fichier en un format - compréhensible pour l'imprimante.</para> - - </sect4> - - <sect4> - <title>Quels filtres de conversion dois-je installer? - </title> - - <para>Installez les filtres de conversion que vous prévoyez - d'utiliser. Si vous avez beaucoup de données DVI, un filtre - de conversion DVI s'impose. Si vous voulez imprimer beaucoup - de troff, c'est une bonne idée d'installer un filtre - troff.</para> - - <para>La table ci-dessous résume les caractéristiques des filtres - que LPD utilise, elle donne le type de fichier, - la fonctionnalité correspondante dans le fichier - <filename>/etc/printcap</filename> et l'option - à utiliser avec la commande <command>lpr</command>.</para> - - <informaltable frame="none"> - <tgroup cols="3"> - <thead> - <row> - <entry>Type de fichier</entry> - <entry>Fonctionnalité <filename>/etc/printcap</filename> - </entry> - <entry>Option de <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>format traceur (“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>programme FORTRAN</entry> - <entry><literal>rf</literal></entry> - <entry><option>-f</option></entry> - </row> - - <row> - <entry>troff</entry> - <entry><literal>rf</literal></entry> - <entry><option>-f</option></entry> - </row> - - <row> - <entry>image point à point (“raster”)</entry> - <entry><literal>vf</literal></entry> - <entry><option>-v</option></entry> - </row> - - <row> - <entry>texte</entry> - <entry><literal>if</literal></entry> - <entry>aucune, <option>-p</option>, ou <option>-l</option></entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Dans notre exemple, la commande - <command>lpr -d</command> signifie que l'imprimante doit - invoquer la fonctionnalité <literal>df</literal> de sa - définition dans <filename>/etc/printcap</filename>.</para> - - <para>Malgré ce que d'aucuns en pensent, des formats tels que - FORTRAN ou “traceur” sont - probablement obsolètes. Sur votre - site, vous pouvez changer la signification de ces options, ou - de n'importe quelle option de conversion, en installant des - filtres personnalisés. Imaginons, par exemple, que vous - vouliez imprimer directement des fichiers Printerleaf (des - fichiers créés avec le logiciel de Publication Assistée par - Ordinateur Interleaf), mais n'imprimerez jamais de fichier - traceur. Vous pouvez installer un filtre de conversion - Printerleaf pour la fonctionnalité <literal>gf</literal> et - prévenir vos utilisateur que <command>lpr -g</command> - signifie “imprimer des fichiers - Printerleaf.”</para> - - </sect4> - - <sect4> - <title>Installer des filtres de conversion</title> - - <para>Les filtres de conversion sont des programmes qui ne - font pas partie de la distribution standard de FreeBSD, ils - ont logiquement leur place dans - <filename>/usr/local</filename>. Le répertoire - <filename>/usr/local/libexec</filename> est l'endroit habituel - où les mettre, parce que ce sont des programmes réservés à LPD - que les utilisateurs ordinaires ne devraient jamais - employer.</para> - - <para>Pour mettre en service un filtre de conversion, indiquez - son chemin d'accès à la fonctionnalité correspondante pour - l'imprimante destinatrice dans - <filename>/etc/printcap</filename>.</para> - - <para>Nous allons ajouter à notre exemple un filtre de conversion - DVI pour l'imprimante appelée <literal>bamboo</literal>. Voici - notre nouveau fichier <filename>/etc/printcap</filename> avec - la fonctionnalité <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|Imprimante Ligne Diablo 630:\ - :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:fs#0x82000e1:xs#0x820:rw:\ - :if=/usr/local/libexec/psif:\ - :df=/usr/local/libexec/psdf: - </programlisting> - - <para>Le filtre DVI est une procédure appelée - <filename>/usr/local/libexec/psdf</filename>. Voici cette - procédure:</para> - - <programlisting> -#!bin/sh -# -# psdf - filtre de conversion de DVI en PostScript -# fichier /usr/local/libexec/psdf -# -# appelé quand l'utilisateur invoque lpr -d -# -exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@" - </programlisting> - - <para>Cette procédure exécute <citerefentry> - <refentrytitle>dvips</refentrytitle></citerefentry> en mode - filtre (l'argument <option>-f</option>) sur l'entrée standard, - qui est le travail d'impression. Elle lance ensuite le filtre - d'impression PostScript <command>lprps</command> (reportez-vous - à la section <link linkend="printing-advanced-if-conversion">Imprimer - du texte sur des imprimantes PostScript</link>) - en lui passant les arguments donnés à LPD. - <command>lprps</command> utilisera ces arguments pour - comptabiliser les pages imprimées.</para> - - </sect4> - - <sect4> - <title>Autres exemples de filtres de conversion</title> - - <para>La méthode pour installer des filtres de conversion n'étant - pas toujours la même, il vaut mieux que je vous donne d'autres - exemples, dont vous pourrez vous inspirer pour mettre en oeuvre - vos propres filtres. Utilisez-les tels quels, au besoin.</para> - - <para>Voici une procédure pour convertir des fichiers graphiques point à point - (en fait, des fichiers GIF) pour une imprimante - Hewlett Packard LaserJet III-Si:</para> - - <programlisting> -#!/bin/sh -# -# hpvf - Convertit des fichiers GIF en HP/PCL, et les imprime -# fichier /usr/local/libexec/hpvf - -PATH=/usr/X11R6/bin:$PATH; export PATH giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \ - && exit 0 \ - || exit 2 - </programlisting> - - <para>Elle convertit le fichier GIF en format portable universel, puis - en format portable noir et blanc, puis en format portable - “bitmap” et enfin en données compatibles - LaserJet/PCL.</para> - - <para>Voici le fichier <filename>/etc/printcap</filename> avec - une entrée pour une imprimante utilisant ce filtre:</para> - - <programlisting> -# -# /etc/printcap pour la machine rose -# -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 convertit des données troff produites - par le traitement de texte groff pour l'imprimante PostScript - <literal>bamboo</literal>:</para> - - <programlisting> -#!/bin/sh -# -# pstf - Convertit des données troff de groff en PS, et les imprime -# fichier /usr/local/libexec/pstf -# -exec grops | /usr/local/libexec/lprps "$@" - </programlisting> - - <para>Cette procédure utilise de nouveau <command>lprps</command> - pour communiquer avec l'imprimante. Si l'imprimante était sur - un port parallèle, il faudrait utiliser une autre - méthode:</para> - - <programlisting> -#!/bin/sh -# -# pstf - Convertit des donnees troff de groff en PS, et les imprime -# fichier /usr/local/libexec/pstf -# -exec grops - </programlisting> - - <para>C'est tout. Voici ce qu'il faut mettre dans - <filename>/etc/printcap</filename> pour utiliser ce - filtre:</para> - - <programlisting> -:tf=/usr/local/libexec/pstf: - </programlisting> - - <para>Voici un exemple qui prend en charge la sauce FORTRAN. C'est un filtre - pour les programmes FORTRAN pour n'importe quelle imprimante - capable d'imprimer directement du texte. Nous l'installerons - pour l'imprimante - <literal>teak</literal>:</para> - - <programlisting> -#!/bin/sh -# -# hprf - filtre de conversion pour FORTRAN pour LaserJet 3si: -# fichier /usr/local/libexec/hprf -# - -printf "\033&k2G" && fpr && printf "\f" && exit 0 -exit 2 - </programlisting> - - <para>Et nous mettrons la ligne suivante dans - <filename>/etc/printcap</filename> pour l'imprimante - <literal>teak</literal> pour activer ce filtre:</para> - - <programlisting> -:rf=/usr/local/libexec/hprf: - </programlisting> - - <para>Voici un dernier exemple, quelque peu plus complexe. Nous - allons installer un filtre DVI pour l'imprimante LaserJet - <literal>teak</literal> de l'exemple précédent. Commençons - par le plus facile: mettre à jour - <filename>/etc/printcap</filename> en lui donnant le chemin - d'accès au filtre DVI:</para> - - <programlisting> -:df=/usr/local/libexec/hpdf: - </programlisting> - - <para>Et maintenant, la partie compliquée: créer le filtre. Il - nous faut un programme de conversion de DVI en - PCL pour LaserJet. Il y en a un au catalogue des logiciels - portés de FreeBSD (voyez le chapitre <link linkend="ports">Installer - des Logiciels au “Catalogue des Logiciels Portés”</link>): - <citerefentry> - <refentrytitle>dvi2xx</refentrytitle></citerefentry> est le - nom du logiciel. En l'installant, nous récupérons le programme - dont nous avons besoin, <citerefentry> - <refentrytitle>dvilj2p</refentrytitle></citerefentry>, qui - convertit du DVI en instructions compatibles LaserJet IIp, - LaserJet III et LaserJet 2000.</para> - - <para><citerefentry> - <refentrytitle>dvilj2p</refentrytitle></citerefentry> rend - le filtre <command>hpdf</command> assez complexe, parce que - <citerefentry> - <refentrytitle>dvilj2p</refentrytitle></citerefentry> ne - sait pas lire sur l'entrée standard. Il lui faut un nom de - fichier. Pire encore, ce fichier doit avoir l'extension - <filename>.dvi</filename>, nous ne pouvons donc pas utiliser - <filename>/dev/fd/0</filename> qui correspond à l'entrée - standard. Nous contournons le problème avec un lien - (symbolique) d'un fichier temporaire (avec l'extension - <filename>.dvi</filename>) vers <filename>/dev/fd/0</filename>, - forçant ainsi <citerefentry> - <refentrytitle>dvilj2p</refentrytitle></citerefentry> à lire - l'entrée standard.</para> - - <para>Il y a cependant une mouche dans le potage. Nous ne pouvons - pas créer de lien symbolique temporaire dans - <filename>/tmp</filename>. Les liens symboliques appartiennent - à l'utilisateur et au groupe <username>bin</username>. - Le filtre est exécuté par l'utilisateur - <username>daemon</username>. Et le bit “sticky (persistant)” - du répertoire <filename>/tmp</filename> est positionné. Le - filtre peut créer le lien, mais ne pourra pas le détruire - après avoir fait son travail, puisque le lien appartient - à un autre utilisateur.</para> - - <para>Le filtre créera donc le lien dans le répertoire courant, - qui est le répertoire tampon pour la file d'attente des - travaux d'impression - (défini par la fonctionnalité <literal>sd</literal> dans - <filename>/etc/printcap</filename>). C'est l'endroit idéal - pour que les filtres accomplissent leur tâche, en particulier - parce qu'il y a (parfois) plus de place dans le répertoire - tampon que dans <filename>/tmp</filename>.</para> - - <para>Voici, enfin, le filtre:</para> - - <programlisting> -#!/bin/sh -# -# hpdf - Imprime du DVI sur une imprimante HP/PCL -# fichier /usr/local/libexec/hpdf - -PATH=/usr/local/bin:$PATH; export PATH - -# -# Définit une fonction pour détruire nos fichiers temporaires. Ces fichiers -# sont dans le répertoire courant, qui est le répertoire de file d'attente de -# l'imprimante -# -cleanup() { - rm -f hpdf$$.dvi -} - -# -# Définit une fonction de gestion des erreurs fatales : imprime le message -# d'erreur et retourne le code d'erreur 2. Ce code dit à LPD de ne pas -# relancer le travail d'impression. -# -fatal() { - echo "$@" 1>&2 - cleanup - exit 2 -} - -# -# Si l'utilisateur annule le travail d'impression, LPD envoie SIGINT, -# il faut donc capturer SIGINT (et quelques autres signaux) -# pour faire ensuite le ménage nous-mêmes. -# -trap cleanup 1 2 15 - -# -# Assurons-nous de ne pas avoir de conflit de nom avec des fichiers existants. -# -cleanup - -# -# Lien symbolique du fichier DVI sur l'entrée standard (fichier à imprimer). -# -ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0" - -# -# LF = CR+LF -# -printf "\033&k2G" || fatal "Cannot initialize printer" - -# -# Convertit et imprime. Le code retour de dvilj2p ne semble pas fiable, -# nous l'ignorons. -# -dvilj2p -M1 -q -e- dfhp$$.dvi - -# -# Fait le ménage et termine la procédure -# -cleanup -exit 0 - </programlisting> - - </sect4> - - <sect4 - id="printing-advanced-autoconv"> - <title>La conversion automatique: une alternative aux filtres de - conversion - </title> - - <para>Tous ces filtres de conversion améliorent votre - environnement d'impression, mais ils obligent l'utilisateur - à préciser (sur la ligne de commande de <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry>) - lequel utiliser. Si vos utilisateurs ne sont pas - particulièrement compétents en informatique, cela leur sera - une gêne. Pire encore, une erreur d'option de filtrage - peut lancer un filtre sur le mauvais type de fichier et - provoquer l'impression de centaines de pages inutiles.</para> - - <para>Au lieu d'installer des filtres de conversion, vous pouvez - essayer de faire en sorte que le filtre texte (qui est le - filtre par défaut) reconnaisse le type de fichier qu'il doit - imprimer et exécute automatiquement le filtre de conversion - adéquat. Des utilitaires comme <command>file</command> peuvent - être employés pour cela. Il sera bien sûr difficile de faire - la différence entre <emphasis>certains</emphasis> types de - fichiers - dans ce cas, vous pouvez toujours fournir des - filtres de conversion juste pour ces fichiers.</para> - - <para>Le catalogue des logiciels portés de FreeBSD inclut un - filtre texte appelé <citerefentry> - <refentrytitle>apsfilter</refentrytitle></citerefentry> - qui effectue la conversion automatique. Il sait reconnaître les - fichiers texte, PostScript et DVI, effectuer la - conversion adéquate et imprimer.</para> - - </sect4> - </sect3> - - <sect3 - id="printing-advanced-of"> - <title>Filtres de sortie</title> - - <para>Le gestionnaire d'impression LPD supporte encore un autre - type de filtre dont nous n'avons pas encore parlé: le filtre - de sortie. Un filtre de sortie sert à imprimer du texte - uniquement, comme le filtre texte, mais il est grandement - simplifié. Si vous utilisez un filtre de sortie, et pas de - filtre texte, alors: - <itemizedlist> - - <listitem> - <para>LPD exécute le filtre de sortie une seule fois par - travail d'impression et non une fois pour chaque fichier - d'un travail d'impression.</para> - </listitem> - - <listitem> - <para>LPD ne s'inquiète pas de détecter le début et la fin - de chaque fichier pour les besoins du filtre de - sortie.</para> - </listitem> - - <listitem> - <para>LPD ne passe pas le nom de la machine et de - l'utilisateur au filtre, qui ne peut donc être utilisé - pour la comptabilité. De fait, il n'a que deux arguments: - - <cmdsynopsis> - <command>nom_du_filtre</command> - <arg choice="plain">-w<replaceable>largeur</replaceable></arg> - <arg choice="plain">-l<replaceable>hauteur</replaceable></arg> - </cmdsynopsis> où <replaceable>largeur</replaceable> est - la valeur définie par la fonctionnalité - <literal>pw</literal> et - <replaceable>hauteur</replaceable> est - la valeur définie par la fonctionnalité - <literal>pl</literal> associée à l'imprimante en - question.</para> - </listitem> - - </itemizedlist> - </para> - - <para>Ne soyez pas abusé par la simplicité du filtre de sortie. Si - vous voulez que chaque fichier d'un travail d'impression commence - sur une nouvelle page, le filtre de sortie - <emphasis>ne convient pas</emphasis>. Utilisez un filtre texte - (appelé aussi filtre d'entrée); voyez la section <link - linkend="printing-textfilter">Installer le filtre texte</link>. - De plus, un filtre de sortie est en fait plus complexe - car il doit examiner le flot de données pour voir s'il contient - des caractères spéciaux et s'envoyer des signaux à lui-même - au lieu que ce soit LPD qui le fasse.</para> - - <para>Un filtre de sortie est toutefois - <emphasis>nécessaire</emphasis> si vous voulez avoir des pages - d'en-tête et devez envoyer des séquences d'échappement ou d'autres - commandes d'initialisation pour pouvoir imprimer ces pages - d'en-tête. (Il est cependant <emphasis>inutilisable</emphasis> si vous - voulez facturer ces pages d'en-tête à l'utilisateur, - puisque LPD ne donne pas d'informations sur l'utilisateur et - la machine au filtre de sortie.)</para> - - <para>Pour une même imprimante, LPD vous autorise à avoir à la fois - un filtre texte, un filtre de sortie et d'autres filtres. Dans ce - cas, LPD utilisera le filtre de sortie pour imprimer la page - d'en-tête (voyez la section <link - linkend="printing-advanced-header-pages">Pages d'en-tête</link>) - uniquement. LPD s'attend à ce que le filtre de sortie - <emphasis>s'interrompe ensuite lui-même</emphasis> quand il lui envoie les - deux octets: ASCII 031 suivi de ASCII 001. Quand un filtre de - sortie reçoit cette séquence (031, 001), il doit s'interrompre en - s'envoyant le signal SIGSTOP. Quand LPD en a fini avec les autres - filtres, il réactive le filtre de sortie en lui envoyant un - SIGCONT.</para> - - <para>S'il y a un filtre de sortie mais <emphasis>pas</emphasis> - de filtre texte et que LPD traite une impression de texte, LPD - se sert du filtre de sortie pour faire le travail. Comme déjà dit - plus haut, le filtre de sortie imprimera les fichiers en continu, - sans saut de page ou autre commande d'avance papier entre eux, ce - qui n'est probablement <emphasis>pas</emphasis> ce que vous - attendez. Dans la plupart des cas, vous aurez besoin d'un filtre - texte.</para> - - <para>Le programme <command>lpf</command>, que nous avons cité - auparavant comme filtre texte, peut aussi être utilisé comme - filtre de sortie. Si vous avez besoin d'un filtre de sortie - grossier et ne voulez pas écrire le code pour tester les - octets et envoyer les signaux, essayez <command>lpf</command>. - Vous pouvez aussi encapsuler <command>lpf</command> dans une - procédure qui prenne en charge les codes d'initialisation - dont l'imprimante aurait besoin.</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 - fait partie de la distribution de FreeBSD est un filtre texte - (filtre d'entrée) qui sait indenter le résultat - (commande <command>lpr -i</command>), imprimer littéralement le - texte (commande <command>lpr -l</command>), se positionner - à la bonne colonne d'impression pour gérer les retours arrière - et les tabulations et comptabiliser les pages imprimées. Il peut - aussi servir de filtre de sortie.</para> - - <para><command>lpf</command> convient à de nombreux environnements - d'impression. Et bien qu'il ne sache pas envoyer de séquences - d'initialisation à l'imprimante, il est facile d'écrire une - procédure qui effectue les initialisations requises et exécute - ensuite <command>lpf</command>.</para> - - <para>Pour que <command>lpf</command> comptabilise correctement les - pages, il faut que les valeurs définies par les fonctionnalités - <literal>pw</literal> et <literal>pl</literal> du fichier - <filename>/etc/printcap</filename> soient correctement - renseignées. Ces valeurs sont utilisées pour savoir quelle - quantité de texte tient sur une page, et combien de pages - comporte le travail d'impression d'un utilisateur. Pour plus - d'informations sur la comptabilisation des impressions, voyez - la section <link linkend="printing-advanced-acct">Comptabiliser - l'utilisation des imprimantes</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, - employant tous différentes imprimantes, alors vous devrez - envisager les <emphasis>pages d'en-tête</emphasis> comme un - mal nécessaire.</para> - - <para>Les pages d'en-tête, appelées aussi - <emphasis>bannières</emphasis> ou - pages qui sautent aux yeux (<emphasis>burst</emphasis>) - identifient les propriétaires des - travaux après qu'ils aient été imprimés. Elles sont généralement - imprimées en gros caractères gras, parfois encadrés, de façon à - ce qu'elles se distinguent facilement des documents eux-mêmes - dans une pile d'impressions. Elles permettent aux utilisateurs - de répérer rapidement leurs propres travaux. L'inconvénient en est - que cela fait une page supplémentaire à imprimer à chaque fois, - d'usage éphémère - quelques minutes au plus, et qui finissent - à la corbeille ou au recyclage. (Notez que comme il n'y a qu'une - page d'en-tête par travail d'impression et non une pour chaque - fichier, le gaspillage n'est peut-être pas si grave.)</para> - - <para>Le système LPD peut générer automatiquement les pages d'en-tête - si votre imprimante sait imprimer directement du texte. Si vous - avez une imprimante PostScript, il vous faudra un programme - supplémentaire pour les générer; reportez-vous à la section - <link linkend="printing-advanced-header-pages-ps">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 <link linkend="printing-simple">Configuration - simple d'une imprimante</link>, nous avons supprimé l'impression - des pages d'en-tête en ajoutant - <literal>sh</literal> (pour “suppress - header” - supprimer les en-têtes) dans le fichier - <filename>/etc/printcap</filename>. Pour les mettre en service - sur une imprimante, il suffit d'enlever la fonctionnalité - <literal>sh</literal>.</para> - - <para>Cela parait trop facile, non?</para> - - <para>Vous avez raison. Vous devrez <emphasis>peut-être</emphasis> - fournir un filtre de sortie pour envoyer une séquence - d'initialisation à votre imprimante. Voici un exemple de filtre - de sortie pour une imprimante compatible avec le langage PCL - de Hewlett Packard:</para> - - <programlisting> -#!/bin/sh -# -# hpof - filtre de sortie pour les imprimantes compatibles Hewlett Packard PCL -# fichier /usr/local/libexec/hpof - -printf "\033&k2G" || exit 2 exec -/usr/libexec/lpr/lpf - </programlisting> - - <para>Donnez le chemin d'accès du filtre de sortie avec la - fonctionnalité - <literal remap="tt">of</literal>. Voyez la section <link - linkend="printing-advanced-of">Filtres de sortie</link> - pour plus d'informations.</para> - - <para>Voici par exemple le fichier - <filename>/etc/printcap</filename> pour l'imprimante - <literal>teak</literal> déjà utilisée plus haut; nous - mettons en service les pages d'en-tête et ajoutons le - filtre 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>Maintenant, quand nous utilisateurs imprimeront sur - <literal>teak</literal>, ils auront une page d'en-tête - pour chaque travail. S'ils préférent perdre du temps à - retrouver leurs impressions, ils peuvent supprimer les - pages d'en-tête en soumettant leurs travaux avec - <command>lpr -h</command>; voyez la section <link - linkend="printing-lpr-options-misc">Options pour la page - d'en-tête</link> pour connaître les autres options - de <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry>.</para> - - <note> - <para>LPD imprime un caractère de saut de page après chaque page - d'en-tête. Si votre imprimante utilise un caractère ou une - séquence différente pour éjecter une page, précisez-la avec - la fonctionnalité <literal>ff</literal> dans - <filename>/etc/printcap</filename>.</para> - </note> - - </sect3> - - <sect3 - id="printing-advanced-header-pages-controlling"> - <title>Configurer les pages d'en-tête</title> - - <para>Si les pages d'en-tête sont actives, LPD produira un - <emphasis>en-tête long</emphasis>, une page entière en - gros caractères, donnant le nom de l'utilisateur, de la - machine et du travail d'impression. En voici un exemple - (kelly a imprimé un travail appelé outline depuis la - machine rose):</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>LPD ajoute un saut de page après ce texte de sorte que le - travail commence en début de page (à moins que vous n'ayez mis - <literal>sf</literal> - supprimer les sauts de - page - dans l'entrée - correspondant à l'imprimante destinatrice dans - <filename>/etc/printcap</filename>).</para> - - <para>Si vous le préférez, LPD peut générer des <emphasis>en-têtes - courts</emphasis>; spécifiez <literal>sb</literal> - (en-tête court - “short banner”) dans le - fichier <filename>/etc/printcap</filename>. - La page d'en-tête ressemblera alors à ceci:</para> - - <programlisting> -rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995 - </programlisting> - - <para>Par défaut, LPD imprime la page d'en-tête avant le contenu - du travail. Vous pouvez faire l'inverse avec - <literal>hl</literal> (en-tête à la fin - “header - last”) dans - <filename>/etc/printcap</filename>.</para> - - </sect3> - - <sect3 id="printing-advanced-header-pages-accounting"> - <title>Comptabiliser les pages d'en-tête</title> - - <para>Avec les pages d'en-tête pré-programmées de LPD, vous - en êtes réduits à appliquer la politique suivante: les pages - d'en-tête doivent être <emphasis>gratuites</emphasis>.</para> - - <para>Pourquoi?</para> - - <para>Le filtre de sortie est le seul programme additionnel - qui puisse savoir quand sont imprimées les pages d'en-tête - et comme il ne connait <emphasis>ni l'utilisateur, ni la - machine</emphasis>, pas plus que le nom du fichier comptable, - il ne peut pas savoir qui facturer. Il ne suffit pas - de simplement “ajouter une page” par l'intermédiaire - du filtre texte ou de l'un des filtres de conversion (qui - connaissent l'utilisateur et la machine), puisque les utilisateurs - peuvent supprimer les pages d'en-tête avec - <command>lpr -h</command>. Ils seraient alors facturés pour des - pages d'en-tête qu'ils n'ont pas imprimées. Les utilisateurs - écologistes préféreront employer <command>lpr -h</command>, mais - vous n'avez pas moyen de les y inciter.</para> - - <para>Il ne suffit <emphasis>pas non plus</emphasis> de faire - générer les pages d'en-tête par les différents filtres (ce - qui permet de les facturer). Si les utilisateurs veulent - alors les supprimer avec <command>lpr -h</command>, ils - les auront malgré tout et seront facturés pour, parce que LPD - ne passe l'information fournie par l'option - <option>-h</option> à aucun des filtres.</para> - - <para>Que pouvez-vous donc faire?</para> - - <para>Vous pouvez : - <itemizedlist> - - <listitem> - <para>Accepter la politique de LPD et ne pas facturer les - pages d'en-tête.</para> - </listitem> - - <listitem> - <para>Installer l'une des alternatives à LPD, comme - LPDng ou PLP. - La section - <link linkend="printing-lpd-alternatives">Alternatives au - gestionnaire d'impression standard</link> vous - en dit plus sur les autres gestionnaires d'impression - qui peuvent se substituer à LPD.</para> - </listitem> - - <listitem> - <para>Ecrire un filtre de sortie - <emphasis>intelligent</emphasis>. Le filtre de sortie - n'a normalement rien d'autre à faire que d'initialiser - l'imprimante et effectuer quelques conversions simples - de caractères. Il convient pour les pages d'en-tête et - l'impression de textes (quand il n'y a pas de filtre - texte - ou d'entrée). Mais, s'il y a un filtre - texte, le filtre de sortie n'est utilisé que pour les - pages d'en-tête. Le filtre de sortie peut alors - déterminer quel utilisateur ou quelle machine facturer - en fonction du contenu de la page d'en-tête. Le seul - problème avec cette méthode est que l'on ne sait toujours - pas quel est le fichier comptable (son nom, défini par - la fonctionnalité <literal>af</literal>, n'est pas - transmis au filtre de sortie), mais si son nom est - standard, vous pouvez le codez “en dur” - dans le filtre de sortie. Pour faciliter l'analyse du - contenu de la page d'en-tête, utilisez la fonctionnalité - <literal>sh</literal> (en-tête courte) dans - <filename>/etc/printcap</filename>. Cependant, - c'est peut-être se donner beaucoup de mal, alors que - les utilisateurs apprécieront certainement plus - l'administrateur système qui leur fait cadeau des - pages d'en-tête.</para> - </listitem> - - </itemizedlist> - </para> - - </sect3> - - <sect3 - id="printing-advanced-header-pages-ps"> - <title>Pages d'en-tête sur les imprimantes PostScript</title> - - <para>Comme décrit ci-dessus, LPD peut générer une page - d'en-tête texte qui convient pour de nombreuses imprimantes. - PostScript ne peut pas imprimer directement du texte, donc - dans ce cas, les pages d'en-tête de LPD sont - inutilisables - ou presque.</para> - - <para>Une méthode triviale pour obtenir des pages d'en-tête est - de confier leur génération à chaque filtre de conversion et - au filtre texte. Ces filtres se serviront des noms d'utilisateur - et de machine pour remplir correctement la page d'en-tête. - L'inconvénient de cette méthode est que les utilisateurs - auront toujours une page d'en-tête, même s'ils soumettent - leurs travaux avec <command>lpr -h</command>.</para> - - <para>Voyons comment cela fonctionne. La procédure ci-dessous a - trois arguments (le nom de l'utilisateur, celui de la machine et - celui du travail d'impression) et génère une page d'en-tête - PostScript simple:</para> - - <programlisting> -#!/bin/sh -# -# make-ps-header - affiche une page d'en-tête PostScript sur la sortie standard -# fichier /usr/local/libexec/make-ps-header -# - -# -# Ce sont les unités PostScript (72 par pouce). -# A modifier pour le format A4 ou autre. -# -page_width=612 -page_height=792 -border=72 - -# -# contrôle des arguments -# -if [ $# -ne 3 ]; then - echo "Usage: `basename $0` <user> <host> <job>" 1>&2 - exit 1 -fi - -# -# Les mémoriser, pour la lisibilité du code PostScript qui suit. -# -user=$1 -host=$2 -job=$3 -date=`date` - -# -# Envoyer le code PostScript sur la sortie standard. -# -exec cat <<EOF -%!PS - -% -% Pour ne pas interférer avec le travail de l'utilisateur qui suivra. -% -save - -% -% Un cadre large et désagréable autour 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 - -% -% Le nom de l'utilisateur en gros caractères. -% -/Helvetica-Bold findfont 64 scalefont setfont -$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto -($user) show - -% -% Les caractéristiques ennuyeuses -% -/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>Chacun des filtres de conversion et le filtre texte peuvent - maintenant utiliser cette procédure pour produire les pages - d'en-tête avant d'imprimer le travail de l'utilisateur. Voici - le filtre de conversion DVI décrit plus haut dans ce chapitre, - modifié pour inclure la génération des pages d'en-tête:</para> - - <programlisting> -#!/bin/sh -# -# psdf - filtre de conversion de DVI en PostScript -# fichier /usr/local/libexec/psdf -# -# Utilisé par lpd quand l'utilisateur emploie lpr -d -# - -orig_args="$@" - -fail() { - echo "$@" 1>&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>&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>Remarquez la façon dont le filtre analyse les arguments - pour connaître le nom de l'utilisateur et celui de la machine. - Ce serait la même pour les autres filtres de conversion. Le - filtre texte a un jeu d'arguments légèrement différent (voyez - la section <link linkend="printing-advanced-filters">Comment - fonctionnent les filtres</link>).</para> - - <para>Comme nous l'avons déjà dit, cette méthode, quoique assez - simple, empêche d'utiliser l'option de - “suppression de la page d'en-tête” (l'option - <option>-h</option>) de la commande <command>lpr</command>. Si - les utilisateurs voulaient épargner un arbre (ou quelques - centimes, si vous facturez les pages d'en-tête), ils ne pourront - pas, puisque tous les filtres imprimeront une page d'en-tête - pour chaque travail.</para> - - <para>Pour permettre aux utilisateurs de désactiver les pages - d'en-tête, vous devrez utiliser l'astuce décrite à 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 en - produire une version PostScript. Si l'utilisateur soumet son - travail avec <command>lpr -h</command>, LPD ne génère pas - de page d'en-tête, et donc le filtre de sortie non plus. - Dans le cas contraire, votre filtre de sortie lira le texte - produit par LPD et enverra le code PostScript de la page - d'en-tête à l'imprimante.</para> - - <para>Si votre imprimante PostScript est sur une interface - série, vous pouvez utiliser <command>lprps</command>, qui - inclut un filtre de sortie, <command>psof</command>, qui - se charge de cela. Remarquez que <command>psof</command> - ne facture pas les pages d'en-tête.</para> - - </sect3> - </sect2> - - <sect2 - id="printing-advanced-network-printers"> - <title>Impression en réseau</title> - - <para>FreeBSD supporte l'impression en réseau pour envoyer des travaux - sur des imprimantes distantes. Imprimer en réseau veut en général - dire deux choses différentes: - <itemizedlist> - - <listitem> - <para>Accéder à une imprimante connectée à une machine distante. - Vous installez une imprimante avec une interface série ou - parallèle classique sur une machine. Vous pouvez alors - configurer LPD pour permettre l'accès à cette imprimante - depuis d'autres machines du réseau. La section <link - linkend="printing-advanced-network-rm">Imprimantes - installées sur des machines distantes</link> - vous explique comment - faire.</para> - </listitem> - - <listitem> - <para>Accéder à une imprimante connectée directement au réseau. - L'imprimante a une interface réseau en plus (ou à la place) - de l'interface série ou parallèle habituelle. Une imprimante - de ce type peut fonctionner comme suit: - - <itemizedlist> - - <listitem> - <para>Elle peut comprendre le protocole LPD, voire même - gérer une file d'attente de travaux venant de machines - distantes. Dans ce cas, elle se comporte comme une - machine distante exécutant LPD. Suivez la même procédure - qu'à la section <link - linkend="printing-advanced-network-rm">Imprimantes - installées sur des machines distantes</link> pour - configurer ce type d'imprimante.</para> - </listitem> - - <listitem> - <para>Elle ne peut que recevoir un flot de données - venant du réseau. Dans ce cas, - vous la “reliez” à une machine du réseau - en confiant à cette machine la gestion de la file - d'attente et l'envoi des travaux à l'imprimante. La - section <link - linkend="printing-advanced-network-net-if">Imprimantes - avec une interface réseau</link> donne - quelques indications sur - l'installation de ce type d'imprimante.</para> - </listitem> - - </itemizedlist> - </para> - </listitem> - - </itemizedlist> - </para> - - <sect3 id="printing-advanced-network-rm"> - <title>Imprimantes installées sur des machines distantes</title> - - <para>Le système LPD inclut ce qu'il faut pour envoyer des - travaux sur d'autres machines qui exécutent aussi LPD (ou - sont compatibles avec). Cela vous permet d'installer une - imprimante sur une machine et de la rendre accessible à - d'autres machines. Cela marche aussi avec les imprimantes - qui ont une interface réseau qui comprend le protocole - LPD.</para> - - <para>Pour utiliser ce type d'impression en réseau, installez - d'abord l'imprimante sur une machine, la <emphasis>machine - d'impression</emphasis>, en utilisant la <link - linkend="printing-simple">Configuration simple d'une - imprimante</link>. - Utilisez les options nécessaires de la - <link linkend="printing-advanced">Configuration avancée - d'une imprimante</link>. Veillez à tester l'imprimante - et vous assurez qu'elle marche avec les options de LPD que vous - avez choisies.</para> - - <para>Si vous utilisez une imprimante avec une interface réseau - compatible avec LPD, alors la <emphasis>machine - d'impression</emphasis> dont nous parlerons ci-dessous est - l'imprimante elle-même, et le <emphasis>nom de - l'imprimante</emphasis> est le nom que vous avez utilisé pour - configurer votre imprimante. Consultez la documentation de - votre imprimante ou de son interface réseau.</para> - - <para>Ensuite, sur les autres machines depuis lesquelles vous voulez - pouvoir accéder à cette imprimante, ajouter une entrée dans leurs - fichiers <filename>/etc/printcap</filename> de la façon suivante: - <orderedlist> - - <listitem> - <para>Nommez cette entrée comme vous voulez. Pour plus de - simplicité, vous utiliserez éventuellement le même nom - et les mêmes alias que sur la machine d'impression.</para> - </listitem> - - <listitem> - <para>Laissez explicitement la fonctionnalité - <literal>lp</literal> non renseignée - (<literal>:lp=:</literal>).</para> - </listitem> - - <listitem> - <para>Créez un répertoire tampon et donnez son chemin d'accès - avec la fonctionnalité <literal>sd</literal>. LPD y - mettra les travaux avant de les envoyer à la machine - d'impression.</para> - </listitem> - - <listitem> - <para>Donnez le nom de l'imprimante avec la fonctionnalité - <literal>rm</literal>.</para> - </listitem> - - <listitem> - <para>Donnez le nom de l'imprimante telle qu'elle est connue - sur la <emphasis>machine - d'impression</emphasis> avec la fonctionnalité - <literal>rp</literal>.</para> - </listitem> - - </orderedlist>C'est tout. Vous n'avez pas besoin de préciser - les filtres, les dimensions de la page ou quoi que ce soit - d'autre dans le fichier - <filename>/etc/printcap</filename>.</para> - - <para>Voici un exemple. Il y a deux imprimantes sur la machine - <hostid>rose</hostid>, - <literal>bamboo</literal> et <literal>rattan</literal>. Nous - allons permettre aux utilisateurs de la machine - <hostid>orchid</hostid> d'utiliser ces imprimantes. Voici le - fichier <filename>/etc/printcap</filename> de la - machine <hostid>orchid</hostid> (repris de la section - <link linkend="printing-advanced-header-pages-enabling">Activer - les pages d'en-tête</link>). Il contenait déjà une entrée - pour l'imprimante <literal>teak</literal>; nous avons ajouté - les entrées pour les deux imprimantes de la machine - <hostid>rose</hostid>:</para> - - <programlisting> -# -# /etc/printcap pour la machine orchid -# ajout des imprimantes (distantes) sur rose -# -# teak est locale; elle est connectée directement à 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 à rose; envoyer les travaux pour rattan à rose: -# -rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ - :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: - -# -# bamboo est aussi connectée à rose: -# -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo: - </programlisting> - - <para>Nous n'avons plus qu'à créer les répertoires - tampon sur <hostid>orchid</hostid>:</para> - - <informalexample> - <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> - </informalexample> - - <para>Les utilisateurs d'<hostid>orchid</hostid> peuvent maintenant - imprimer sur <literal>rattan</literal> - et <literal>bamboo</literal>. Si, par exemple, un utilisateur - d'<hostid>orchid</hostid> tape: - - <informalexample> - <screen>&prompt.user; <userinput>lpr -P bamboo -d appreciations-sushi.dvi</userinput></screen> - </informalexample> Le système LPD d'orchid copiera le travail dans - le répertoire tampon - <filename>/var/spool/lpd/bamboo</filename> et notera que c'est - un travail DVI. Dès qu'il y aura de la place dans le répertoire - tampon pour <hostid>bamboo</hostid> sur la machine rose, les deux - LPD transfèreront le fichier sur rose. Il attendra d'être imprimé - dans la file d'attente de rose. La conversion de DVI en - PostScript (puisque bamboo est une imprimante PostScript) - sera faite par rose.</para> - - </sect3> - - <sect3 - id="printing-advanced-network-net-if"> - <title>Imprimantes avec une interface réseau</title> - - <para>La plupart du temps, quand vous achetez une carte d'interface - réseau pour une imprimante, vous avez le choix entre deux - versions: l'une (la plus chère) émule un gestionnaire - d'impression, l'autre (la moins chère) ne vous permet que de lui - envoyer des données comme si elle était sur un port parallèle ou - série. C'est l'utilisation de cette dernière que décrit la - présente section. Pour la version la plus chère, voyez 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 d'indiquer quelle interface série ou parallèle - utiliser, et (si vous utilisez une interface série), quelle - est la vitesse en baud, s'il faut utiliser un contrôle de - flux, les délais pour les tabulations, la conversion des - sauts de ligne, et ainsi de suite. Mais il n'y a rien pour - décrire la connexion d'une imprimante qui écoute sur un port - TCP/IP ou un autre port réseau.</para> - - <para>Pour envoyer des données à une imprimante réseau, il vous - faut un programme de communication qui soit appelé par le - filtre texte et les filtres de conversion. En voici une - exemple: la procédure <command>netprint</command> récupère - toutes les données qui arrivent sur l'entrée standard et - les envoie à une imprimante réseau. Nous donnons comme - premier argument de <command>netprint</command> - le nom de machine de l'imprimante et comme deuxième argument - le numéro du port auquel se connecter. Remarquez que la - communication est à sens unique (de FreeBSD vers l'imprimante); - nombre d'imprimantes réseau sont capables de communiquer dans - les deux sens, et vous voudrez peut-être en profiter (pour - connaître l'état de l'imprimante, gérer la comptabilité, - etc.).</para> - - <programlisting> -#!/usr/bin/perl -# -# netprint - filtre texte pour une imprimante réseau -# fichier /usr/local/libexec/netprint -# -$#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>"; - -$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', &AF_INET, $printer_port, $address); - -socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol) - || die "Impossible de créer la socket TCP/IP: $!"; -connect(PRINTER, $sockaddr) || die "Impossible de contacter $printer_host: $!"; -while (<STDIN>) { print PRINTER; } -exit 0; - </programlisting> - - <para>Nous pouvons utiliser cette procédure avec différents - filtres. Supposons que nous ayons une imprimante ligne - Diablo 750-N sur notre réseau. Cette imprimante reçoit les données - à imprimer sur le port 5100. Son nom de machine est scrivener. - Voici le filtre texte pour cette imprimante:</para> - - <programlisting> -#!/bin/sh -# -# diablo-if-net - filtre texte pour l'imprimante Diablo `scrivener' à l'écoute -# sur le port 5100. fichier /usr/local/libexec/diablo-if-net -/usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100 - </programlisting> - - </sect3> - </sect2> - - <sect2 id="printing-advanced-restricting"> - <title>Restreindre l'accès aux imprimantes</title> - - <para>Cette section vous donne des informations sur les - restrictions d'accès aux imprimantes. Le système LPD - vous permet de contrôler quels sont les utilisateurs - qui peuvent accéder aux imprimantes, locales et distantes, - s'ils ont le droit d'imprimer en plusieurs exemplaires, - quelle taille peut avoir leurs travaux, et quelle peut - être la taille maximale de la file d'attente.</para> - - - <sect3 id="printing-advanced-restricting-copies"> - <title>Restreindre l'impression de plusieurs exemplaires</title> - - <para>Avec le système LPD, il est facile pour les utilisateurs - d'imprimer en plusieurs exemplaires. Il leur suffit d'utiliser - <command>lpr -#5</command> (par exemple) pour obtenir 5 - exemplaires de chaque fichier de leur travail d'impression. - C'est à vous de décider si c'est une bonne chose.</para> - - <para>Si vous pensez que les impressions multiples usent - inutilement vos imprimantes, vous pouvez désactiver - l'option <option>-#</option> de - <citerefentry><refentrytitle>lpr</refentrytitle></citerefentry> - en ajoutant la fonctionnalité <literal>sc</literal> au fichier - <filename>/etc/printcap</filename>. Quand les utilisateurs - soumettront des travaux avec l'option <option>-#</option>, - ils auront le message : - - <informalexample> - <screen>lpr: multiple copies are not allowed</screen> - </informalexample></para> - - <para>(L'impression en plusieurs exemplaires n'est pas - autorisée.)</para> - <para>Notez bien que si vous avez défini une entrée pour une - imprimante distante - (voyez la section - <link linkend="printing-advanced-network-rm">Imprimantes - installées sur des machines distantes</link>), vous devrez aussi - définir la fonctionnalité <literal>sc</literal> dans le fichier - <filename>/etc/printcap</filename> de la machine, ou bien les - autres utilisateurs pourrons envoyer des impressions multiples - depuis d'autres machines.</para> - - <para>Voici un exemple. C'est le fichier - <filename>/etc/printcap</filename> de la machine - <hostid>rose</hostid>. L'imprimante <literal>rattan</literal> - est assez robuste, nous y autoriserons les impressions multiples, - mais l'imprimante laser <literal>bamboo</literal> est un peu plus - fragile, nous y désactiverons donc les impressions en plusieurs - exemplaires en ajoutant la fonctionnalité - <literal remap="tt">sc</literal>:</para> - - <programlisting> -# -# /etc/printcap pour la machine rose -# interdire plusieurs exemplaires sur bamboo -# -rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ - :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:fs#0x82000e1:xs#0x820:rw:\ - :if=/usr/local/libexec/psif:\ - :df=/usr/local/libexec/psdf: - </programlisting> - - <para>Il nous faut encore ajouter la fonctionnalité - <literal>sc</literal> dans <filename>/etc/printcap</filename> - sur la machine <hostid>orchid</hostid> (et pendant que nous y - sommes, désactivons les exemplaires multiples sur l'imprimante - <literal>teak</literal>):</para> - - <programlisting> -# -# /etc/printcap pour la machine orchid - pas d'impression en plusieurs -# exemplaires sur l'imprimante locale teak ni sur 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|Imprimante Ligne Diablo 630:\ - :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>Avec la fonctionnalité <literal>sc</literal>, - nous empêchons d'utiliser la commande <command>lpr -#</command>, - mais cela n'évite pas que les utilisateurs exécutent plusieurs - fois <citerefentry> - <refentrytitle>lpr</refentrytitle></citerefentry>, - ou soumettent plusieurs fois les mêmes fichiers dans un même - travail, comme ceci:</para> - - <informalexample> - <screen>&prompt.user; <userinput>lpr a-vendre.annonce a-vendre.annonce a-vendre.annonce</userinput></screen> - </informalexample> - - <para>Il y a de nombreux moyens d'empêcher ce type d'abus - que vous êtes libre d'essayer (y compris l'ignorer).</para> - - </sect3> - - <sect3 - id="printing-advanced-restricting-access"> - <title>Restreindre l'accès aux imprimantes</title> - - <para>Vous pouvez contrôler qui imprime sur quelle imprimante - avec le mécanisme des groupes d'UNIX et la fonctionnalité - <literal>rg</literal> dans <filename>/etc/printcap</filename>. - Définissez les utilisateurs auxquels vous voulez autoriser l'accès - à une imprimante dans un groupe précis et donnez ce groupe - en paramètre de la fonctionnalité <literal>rg</literal>.</para> - - <para>Les utilisateurs qui n'appartiennent pas à ce - groupe (y compris le super-utilisateur) seront accueillis par:</para> - - <informalexample> - <screen>lpr: Not a member of the restricted group</screen> - </informalexample> - - <para>(Vous n'appartenez pas au groupe autorisé.) - s'ils essaient d'utiliser l'imprimante en question.</para> - - <para>De même que pour la fonctionnalité <literal>sc</literal> - (suppressions des exemplaires multiples), vous devez spécifier - <literal>rg</literal> sur les machines distantes qui ont accès - à l'imprimante, si cela vous paraît indiqué (voyez la section - <link linkend="printing-advanced-network-rm">Imprimantes - installées sur des machines distantes</link>).</para> - - <para>Par exemple, nous ne laisserons pas tout le monde imprimer sur - <literal>rattan</literal>, mais seuls les utilisateurs du groupe - <literal>artists</literal> pourront utiliser - <literal>bamboo</literal>. Voici notre habituel fichier - <filename>/etc/printcap</filename> - pour la machine <hostid>rose</hostid>:</para> - - <programlisting> -# -# /etc/printcap pour la machine rose - restriction d'accès à bamboo -# -rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ - :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:fs#0x82000e1:xs#0x820:rw:\ - :if=/usr/local/libexec/psif:\ - :df=/usr/local/libexec/psdf: - </programlisting> - - <para>Laissons tel quel l'autre fichier - <filename>/etc/printcap</filename> (de la machine - <hostid>orchid</hostid>). Bien sûr, tous les utilisateurs - d'<hostid>orchid</hostid> peuvent alors imprimer sur - <literal>bamboo</literal>. Selon le cas, nous voudrons - restreindre ou non l'accès à certains utilisateurs - d'<hostid>orchid</hostid>.</para> - - <note> - <para>Avec cette fonctionnalité, il ne peut y avoir qu'un seul - groupe d'utilisateurs autorisé par imprimante.</para> - </note> - </sect3> - - <sect3 - id="printing-advanced-restricting-sizes"> - <title>Contrôler la taille des travaux soumis</title> - - <para>Si de nombreux utilisateurs accèdent à vos imprimantes, - vous voudrez probablement limiter la taille des fichiers - qu'ils peuvent imprimer. Après tout, l'espace disponible - sur les systèmes de fichiers où se trouvent les files - d'attente n'est pas illimité, et vous devez aussi faire en - sorte qu'il y ait de la place pour les travaux de tous les - utilisateurs.</para> - - <para>LPD vous permet de définir une taille maximum en octets - que peut avoir un fichier à imprimer grâce à la fonctionnalité - <literal>mx</literal>. L'unité est le bloc BUFSIZ, qui est de - 1024 octets. Si vous donnez en paramètre de cette fonctionnalité - la valeur zéro, la taille des fichiers ne sera pas limitée.</para> - - <note> - <para>Cette limite s'applique à la taille des - <emphasis>fichiers</emphasis> d'un travail d'impression, - et <emphasis>non</emphasis> au volume total du travail.</para> - </note> - - <para>LPD ne refusera pas d'imprimer un fichier trop volumineux. - Il en mettra autant que la limite - donnée dans la file d'attente. Cette - partie sera imprimée, le reste sera ignoré. Est-ce la bonne - méthode, le débat reste ouvert.</para> - - <para>Ajoutons des limites aux imprimantes - <literal>rattan</literal> et <literal>bamboo</literal> - de notre exemple. Comme les fichiers PostScript de nos artistes - sont assez volumineux, nous les limiterons à 5 méga-octets. Nous - ne mettrons pas de limitation à l'utilisation de l'imprimante - texte:</para> - - <programlisting> -# -# /etc/printcap pour la machine rose -# - -# -# Pas de limite à la taille des fichiers: -# -rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ - :sh:sd=/var/spool/lpd/rattan:\ - :lp=/dev/lpt0:\ - :if=/usr/local/libexec/if-simple: - -# -# Pas plus de 5 méga-octets -# -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:fs#0x82000e1:xs#0x820:rw:\ - :if=/usr/local/libexec/psif:\ - :df=/usr/local/libexec/psdf: - </programlisting> - - <para>Encore une fois, ces limitations s'appliquent aux - utilisateurs locaux. Si ces imprimantes sont accessibles - à distance, les utilisateurs distants ne seront pas - assujettis à ces limites. Il vous faut aussi introduire la - fonctionnalité <literal>mx</literal> dans les fichiers - <filename>/etc/printcap</filename> des machines distantes. Voyez - la section <link - linkend="printing-advanced-network-rm">Imprimantes installées - sur des machines distantes</link> pour plus d'informations sur - l'impression à distance.</para> - - <para>Il y a un autre moyen de limiter le volume des travaux - d'impression à distance; voyez la section <link - linkend="printing-advanced-restricting-remote">Contrôler les - impressions à distance</link>.</para> - - </sect3> - - <sect3 - id="printing-advanced-restricting-remote"> - <title>Contrôler les impressions à distance</title> - - <para>Le système LPD fournit différents moyens de contrôler - les impressions depuis des machines distantes:</para> - - - <variablelist> - <varlistentry><term>Restrictions selon les machines</term> - <listitem> - <para>Vous pouvez contrôler de quelles machines distantes - le “démon” LPD local acceptera des requêtes - d'impression grâce aux fichiers - <filename>/etc/hosts.equiv</filename> et - <filename>/etc/hosts.lpd</filename>. LPD vérifie si la - requête vient d'une machine mentionnée dans l'un de ces - deux fichiers. Si ce n'est pas le cas, il refuse la - requête.</para> - - <para>Le format de ces fichiers est trivial: un nom de - machine par ligne. Notez que le fichier - <filename>/etc/hosts.equiv</filename> est aussi utilisé - par le protocole - <citerefentry><refentrytitle>ruserok</refentrytitle><manvolnum>3</manvolnum></citerefentry>, et affecte des programmes comme - <citerefentry> - <refentrytitle>rsh</refentrytitle></citerefentry> et - <citerefentry> - <refentrytitle>rcp</refentrytitle></citerefentry>, - faites donc attention.</para> - - <para>Voici par exemple le fichier - <filename>/etc/hosts.lpd</filename> de la machine - <hostid>rose</hostid>: - - <programlisting> -orchid -violet -madrigal.fishbaum.de - </programlisting> - - Ce qui signifie que <hostid>rose</hostid> acceptera - les demandes qui viennent des machines - <hostid>orchid</hostid>, - <hostid>violet</hostid> - et <hostid role="fqdn">madrigal.fishbaum.de</hostid>. - Si une autre machine fait appel au LPD de - <hostid>rose</hostid>, il lui refusera l'accès.</para> - </listitem> - </varlistentry> - - <varlistentry><term>Restrictions de volume</term> - - <listitem> - <para>Vous pouvez contrôler combien il doit rester - d'espace libre sur le système de fichiers où se - trouve le répertoire de file d'attente. Créez un - fichier appelé <filename>minfree</filename> dans - le répertoire de file d'attente de l'imprimante - local. Mettez-y un nombre de blocs disque (512 octets) - qui sera l'espace qui devra être disponible pour - qu'un travail d'impression à distance soit accepté.</para> - - <para>Vous vous assurez ainsi que les utilisateurs distants - ne satureront pas votre système de fichiers. Vous pouvez - aussi utiliser cette possibilité pour donner une certaine - priorité aux utilisateurs locaux: ils pourront mettre des - travaux en attente bien après que l'espace disponible - soit descendu en dessous de la valeur indiquée par - le fichier <filename>minfree</filename>.</para> - - <para>Définissons par exemple un fichier - <filename>minfree</filename> pour l'imprimante - <hostid>bamboo</hostid>. Nous regardons dans - <filename>/etc/printcap</filename> pour savoir - quel est son répertoire de file d'attente. Voici l'entrée - pour <hostid>bamboo</hostid>:</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:fs#0x82000e1:xs#0x820:rw:mx#5000:\ - :if=/usr/local/libexec/psif:\ - :df=/usr/local/libexec/psdf: - </programlisting> - - <para>Le répertoire de file d'attente est défini par la - fonctionnalité <literal>sd</literal>. Nous fixerons à - trois méga-octets (soit 6144 blocs disque) l'espace - qui doit être libre pour que LPD accepte des impressions - distantes:</para> - - <informalexample> - <screen>&prompt.root; <userinput>echo 6144 > /var/spool/lpd/bamboo/minfree</userinput></screen> - </informalexample> - - </listitem> - </varlistentry> - - <varlistentry><term>Restrictions sur les utilisateurs</term> - - <listitem> - <para>Vous pouvez contrôler quels utilisateurs distants - peuvent utiliser les imprimantes locales avec la - fonctionnalité <literal>rs</literal> dans - <filename>/etc/printcap</filename>. Quand - <literal>rs</literal> est mentionnée dans l'entrée - correspondant à une imprimante locale, LPD acceptera - les impressions venant de machines distantes - <emphasis>si et seulement si</emphasis> l'utilisateur - qui soumet le travail a un compte sous le même nom - sur la machine locale. Sinon, le travail d'impression - sera refusé.</para> - - <para>Cette fonctionnalité est particulièrement utile - lorsque (par exemple) plusieurs départements partagent un réseau - et certains utilisateurs sont à cheval sur plusieurs - départements. En leur ouvrant un compte sur vos - systèmes, ils peuvent utiliser les imprimantes de - leur propre département. Si vous préférez qu'ils - n'utilisent que <emphasis>vos</emphasis> imprimantes, mais - pas vos machines, vous pouvez leur ouvrir des comptes - “jeton”, sans répertoire utilisateur et - avec un interpréteur de commandes inutilisable tel que - <filename>/usr/bin/false</filename>.</para> - - </listitem> - </varlistentry> - </variablelist> - - - </sect3> - </sect2> - - <sect2 - id="printing-advanced-acct"> - <title>Comptabiliser l'utilisation des imprimantes</title> - - <para>Donc, vous voulez facturer les impressions. Et pourquoi pas? - Le papier et l'encre coûtent de l'argent. Il y a aussi les coûts - de maintenance. Les imprimantes ont des pièces mobiles qui ont - tendance à casser. Vous avez fait un bilan du coût de vos - imprimantes, consommables et frais de maintenance et avez - calculé un coup à la page (ou au mètre, ou toute autre unité). - Comment faites-vous maintenant pour comptabiliser les - impressions?</para> - - <para>Bien, la mauvaise nouvelle est que le gestionnaire - d'impression LPD n'aide pas beaucoup dans ce domaine. La - facturation dépend dans une large mesure du type d'imprimante, - du format utilisé, et de <emphasis>votre</emphasis> politique - de facturation de l'utilisation des imprimantes.</para> - - <para>Pour mettre en oeuvre la facturation, vous devez modifier le - filtre texte de l'imprimante (pour facturer l'impression de - fichiers texte) et les filtres de conversion (pour les autres - formats de fichiers), pour qu'ils comptent les pages ou interrogent - l'imprimante pour connaître le nombre de pages imprimées. Vous - ne pouvez pas vous en sortir avec un simple filtre de sortie, qui - n'est pas capable de gérer la comptabilité. Voyez la section - <link - linkend="printing-advanced-filter-intro">Filtres</link>.</para> - - <para>D'une façon générale, il y a deux méthodes de faire la - facturation: - <itemizedlist> - - <listitem> - <para>La <emphasis>facturation périodique</emphasis> est la - méthode la plus courante, probablement parce que c'est la - plus facile. Chaque fois que quelqu'un imprime, le filtre - enregistre dans le fichier comptable le nom de l'utilisateur, - celui de la machine et le nombre de pages imprimées. Tous - les mois, semestres, années, ou avec la périodicité que vous - voulez, vous récupérez les fichiers comptables des différentes - imprimantes et facturez leur utilisation. Vous réinitialisez - ensuite ces fichiers, et repartez à zéro pour la période - suivante.</para> - </listitem> - - <listitem> - <para>La <emphasis>facturation à la volée</emphasis> est moins - utilisée, certainement parce qu'elle est plus délicate. Avec - cette méthode, les filtres facturent les utilisateurs dès - qu'ils utilisent les imprimantes. Comme pour les quotas - d'espace disque, la comptabilité est immédiate, Vous pouvez - interdire aux utilisateurs d'imprimer dès qu'ils sont dans le - rouge et leur fournir un moyen de consulter et modifier - leurs “quotas d'impression”. Mais cette - méthode demande de mettre en oeuvre une base de données - pour gérer les utilisateurs et leurs quotas.</para> - </listitem> - - </itemizedlist> - </para> - - <para>Le gestionnaire d'impression LPD permet de mettre facilement en - oeuvre les deux méthodes: de même que vous devez fournir des filtres - (la plupart du temps, au moins), vous devez aussi écrire le code - de facturation. Mais cela a un avantage: vous avez énormement de - souplesse pour la méthode. Par exemple, vous pouvez choisir entre - la facturation périodique ou à la volée. Vous pouvez choisir quelles - informations utiliser: le nom d'utilisateur, le nom de - machine, le type d'impression, le nombre de pages, la surface ou - la quantité de papier utilisée, le temps qu'a pris l'impression, et - ainsi de suite. Vous faites cela en modifiant le filtre pour qu'il - archive ces informations.</para> - - <sect3> - <title>Facturation simplifiée</title> - - <para>FreeBSD inclut deux programmes que vous pouvez immédiatement - configurer pour une facturation périodique de base. Ce sont le - filtre texte <command>lpf</command>, décrit à la section - <link linkend="printing-advanced-lpf"><command>lpf</command>: - un filtre texte</link>, et <citerefentry> - <refentrytitle>pac</refentrytitle></citerefentry>, un programme - qui rassemble et globalise les données des fichiers - comptables.</para> - - <para>Comme indiqué à la section sur les filtres (<link - linkend="printing-advanced-filters">Filtres</link>), LPD - exécute le filtre texte et les filtres de conversion en leur - donnant en argument le nom du fichier comptable. Les filtres - peuvent utiliser ce paramètre pour savoir où écrire - l'enregistrement comptable. Le nom du fichier est précisé par - la fonctionnalité <literal>af</literal> du fichier - <filename>/etc/printcap</filename>, avec un chemin d'accès - absolu ou relatif au répertoire de file d'attente.</para> - - <para>LPD exécute <command>lpf</command> avec comme paramètres - la largeur et la hauteur de page (définies par les - fonctionnalités <literal>pw</literal> et <literal>pl</literal>). - <command>lpf</command> utilise ces arguments pour savoir combien - il faudra de papier. Après avoir envoyé le fichier à l'imprimante, - il génère alors un enregistrement dans le fichier comptable. Cet - enregistrement ressemble à ce qui suit:</para> - - <programlisting> -2.00 rose:andy -3.00 rose:kelly -3.00 orchid:mary -5.00 orchid:mary -2.00 orchid:zhang</programlisting> - - <para>Il faut utiliser un fichier comptable différent pour - chaque imprimante, car <command>lpf</command> ne sait pas - verrouiller les fichiers, et deux <command>lpf</command> - pourraient corrompre leurs enregistrements respectifs - s'ils écrivaient en même temps dans le même fichier. Une façon - simple d'être sûr que l'on a des fichiers différents pour chaque - imprimante est d'utiliser <literal>af=acct</literal> dans - <filename>/etc/printcap</filename>. On a alors dans les - répertoires de file d'attente de chaque imprimante, un fichier - comptable appelé <filename>acct</filename>.</para> - - <para>Quand vous voulez facturer les utilisateurs, - exécutez le programme <citerefentry> - <refentrytitle>pac</refentrytitle></citerefentry>. - Allez simplement dans le répertoire de file d'attente - de l'imprimante dont vous voulez récupérer les informations - comptables et tapez <citerefentry> - <refentrytitle>pac</refentrytitle></citerefentry>. Vous - obtiendrez un résumé (en dollars) des coûts:</para> - - <informalexample> - <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> - </informalexample> - - <para>Voici les arguments qu'attend <citerefentry> - <refentrytitle>pac</refentrytitle></citerefentry>:</para> - - <variablelist> - <varlistentry><term><option>-P<replaceable>imprimante</replaceable></option></term> - <listitem> - <para>L'<replaceable>imprimante</replaceable> dont on - veut le résumé comptable. Cette option ne fonctionne - que si l'on a donné un chemin d'accès absolu à la - fonctionnalité <literal>af</literal> - dans <filename>/etc/printcap</filename>.</para> - </listitem> - </varlistentry> - - <varlistentry><term><option>-c</option></term> - - <listitem> - <para>Trier par coûts au lieu d'utiliser l'ordre - alphabétique des noms d'utilisateurs.</para> - </listitem> - </varlistentry> - - <varlistentry><term><option>-m</option></term> - - <listitem> - <para>Ne pas tenir compte du nom de machine indiqué pour la - comptabilité. Avec cette option, l'utilisateur - <username>smith</username> sur la machine - <hostid>alpha</hostid> est le même utilisateur que - <username>smith</username> sur la machine - <hostid>gamma</hostid>. Sinon, ils sont considérés comme - des utilisateurs différents.</para> - </listitem> - </varlistentry> - - <varlistentry><term><option>-p<replaceable>prix</replaceable></option></term> - - <listitem> - <para>Calculer les coûts sur la base du - <replaceable>prix</replaceable> en dollars par page ou par - pied (“ft”) au lieu d'utiliser la valeur donnée - avec la fonctionnalité <literal>pc</literal> dans - <filename>/etc/printcap</filename>, ou deux - centimes (la valeur par défaut). - <replaceable>prix</replaceable> peut être un nombre en - virgule flottante.</para> - </listitem> - </varlistentry> - - <varlistentry><term><option>-r</option></term> - - <listitem> - <para>Trier dans l'ordre inverse.</para> - </listitem> - </varlistentry> - - <varlistentry><term><option>-s</option></term> - - <listitem> - <para>Editer le résumé comptable et tronquer le - fichier.</para> - </listitem> - </varlistentry> - - <varlistentry><term><replaceable>nom</replaceable> <replaceable>...</replaceable></term> - - <listitem> - <para>N'imprimer les informations comptables que pour - l'utilisateur <replaceable>nom</replaceable>.</para> - - </listitem> - </varlistentry> - </variablelist> - - <para>Dans le résumé que produit <citerefentry> - <refentrytitle>pac</refentrytitle></citerefentry> - par défaut, vous avez le nombre de pages imprimées par - chaque utilisateur sur chaque machine.Si, sur votre site, - les machines n'ont pas d'importance (parce que les - utilisateurs peuvent se servir de n'importe laquelle), - utilisez <command>pac -m</command>, pour obtenir un - récapitulatif qui ressemble à:</para> - - <informalexample> - <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> - </informalexample> - - <para>Pour calculer la facture en dollars, - <citerefentry> - <refentrytitle>pac</refentrytitle></citerefentry> utilise - la fonctionnalité <literal>pc</literal> du fichier - <filename>/etc/printcap</filename> (200 par défaut, soit 2 - centimes par page). Donnez, en centièmes de centimes, le prix - par page ou par pied que vous voulez facturer. Cette valeur - peut être redéfinie quand vous utilisez - <citerefentry> - <refentrytitle>pac</refentrytitle></citerefentry> avec - l'option <option>-p</option>. Avec l'option - <option>-p</option>, l'unité est le dollar et non plus - le centième de centime. Par exemple: - - <informalexample> - <screen>&prompt.root; <userinput>pac -p1.50</userinput></screen> - </informalexample> - - facture chaque page un dollar cinquante centimes. Vous pouvez - vraiment faire des affaires avec cette option.</para> - - <para>Enfin, utiliser <command>pac -s</command> sauvegardera le - résumé dans un fichier comptable récapitulatif, de même nom - que le fichier comptable associé à l'imprimante, mais suffixé - par <literal>_sum</literal>. Le fichier comptable est ensuite - tronqué. La prochaine fois que vous utiliserez - <citerefentry><refentrytitle>pac</refentrytitle></citerefentry>, - ce fichier récapitulatif sera relu et pris en compte pour - recalculer les totaux, en y ajoutant ce qui est comptabilisé - dans le fichier comptable normal.</para> - - </sect3> - - <sect3> - <title>Comment compter le nombre de pages imprimées?</title> - - <para>Pour comptabliser correctement les impressions, même à - distance, vous devez pouvoir calculer la quantité de papier - consommée par chaque travail. C'est la difficulté principale - liée à la facturation des impressions.</para> - - <para>Pour les impressions en mode texte, la difficulté n'est - pas si grande: vous comptez le nombre de lignes à imprimer - et le comparer au nombre de lignes que l'imprimante peut - éditer par page. N'oubliez pas de prendre les retours arrière - en compte, lorsqu'il y a sur-impression, de même que les lignes - trop longues qui s'impriment sur plus d'une ligne.</para> - - <para>Le filtre texte <command>lpf</command> - (décrit dans <link - linkend="printing-advanced-lpf"><command>lpf</command>: un filtre - texte</link>) prend tout cela en compte lorsqu'il gère - la comptabilité. Si vous écrivez un filtre texte qui doit prendre - la facturation en charge, vous devriez jeter un oeil au code - source de <command>lpf</command>.</para> - - <para>Comment prendre les autres formats en compte?</para> - - <para>Pour les conversions de DVI en LaserJet ou PostScript, - le filtre peut analyser la sortie de - <citerefentry> - <refentrytitle>dvilj</refentrytitle></citerefentry> ou - <citerefentry> - <refentrytitle>dvips</refentrytitle></citerefentry> - pour y lire le nombre de pages converties. Vous devriez - être en mesure de faire de même avec d'autres formats de fichiers - et d'autres programmes de conversion.</para> - - <para>Ces méthodes sont toutefois limitées parce qu'elles ne - prennent pas en compte le fait que l'imprimante n'imprimera - peut-être pas toutes ces pages. Il peut par exemple y avoir - bourrage ou manque d'encre - et l'utilisateur sera malgré - tout facturé.</para> - - <para>Que pouvez-vous alors faire?</para> - - <para>Il n'y a qu'une seule méthode <emphasis>sûre</emphasis> - pour tenir une comptabilité <emphasis>précise</emphasis>. - Faire dire à l'imprimante combien de papier elle utilise, et - la connecter sur un port série ou directement sur le réseau. - Pratiquement toutes les imprimantes PostScript offrent cette - possibilité. C'est aussi faisable avec d'autres modèles (les - imprimantes laser réseau Imagen, par exemple). Modifiez les - filtres de ces imprimantes pour lire le nombre de pages - imprimées à la fin de chaque travail et reportez dans le - fichier comptable des informations qui se basent - <emphasis>uniquement</emphasis> là-dessus. Il n'y a alors pas besoin - de compter les lignes ou d'un examen des fichiers qui peut - être source d'erreurs.</para> - - <para>Vous pouvez toujours en définitive vous montrer généreux et - instituer la gratuité des impressions.</para> - - </sect3> - </sect2> - </sect1> - - <sect1 - id="printing-lpd-alternatives"> - <title>Alternatives au gestionnaire d'impression standard</title> - - <para>Si vous avez lu intégralement ce document jusqu'ici, - vous savez maintenant à peu près tout ce qu'il faut savoir sur - le gestionnaire d'impression LPD qui est livré avec FreeBSD. Vous - pouvez juger de ses limitations, ce qui vous amène tout naturellement - à vous demander s'il existe d'autres gestionnaires d'impression - (qui fonctionnent sous FreeBSD).</para> - - <para>Malheureusement, je n'ai trouvé que <emphasis>deux</emphasis> - alternatives - et elles sont quasiment semblables! Ce sont:</para> - - <variablelist> - <varlistentry><term>PLP, le “Portable Line Printer - Spooler” - (gestionnaire d'impression en ligne portable)</term> - <listitem> - <para>PLP est basé sur un logiciel développé par Patrick Powell - puis maintenu par un groupe de développeurs sur Internet. Le - site de référence pour ce logiciel est <ulink - url="ftp://ftp.iona.ie/pub/plp">ftp://ftp.iona.ie/pub/plp</ulink>. - Il y a aussi une <ulink url="http://www.iona.ie:8000/www/hyplan/jmason/plp.html">page Web</ulink>.</para> - - <para>Il ressemble beaucoup au gestionnaire LPD de BSD, mais - en améliore un grand nombre de fonctionnalités, dont: - <itemizedlist> - - <listitem> - <para>Meilleur support réseau, dont le support intégré - des imprimantes réseau, - fichiers <filename>printcap</filename> gérés par NIS, - et montage NFS des répertoires tampons.</para> - </listitem> - - <listitem> - <para>Gestion sophistiquée des files d'attentes, - permettant d'avoir plusieurs imprimantes sur la même - file, le transfert de travaux d'une file à une autre, - et la redirection des files d'attente.</para> - </listitem> - - <listitem> - <para>Fonctions de contrôle à distance des - imprimantes.</para> - </listitem> - - <listitem> - <para>Gestion des priorités des travaux.</para> - </listitem> - - <listitem> - <para>Extensions aux options d'accès et de sécurité.</para> - </listitem> - - </itemizedlist> - </para> - </listitem> - </varlistentry> - - <varlistentry><term>LPRng</term> - - <listitem> - <para>LPRng, qui signifie “LPR: the Next - Generation” (LPR : la génération suivante) est une - réécriture complète de PLP. Patrick Powell - et Justin Mason (le principal responsable de la maintenance - de PLP) ont coopéré pour réaliser LPRng. Le site de - référence de LPRng est <ulink - url="ftp://dickory.sdsu.edu/pub/LPRng">ftp://dickory.sdsu.edu/pub/LPRng</ulink>.</para> - - </listitem> - </varlistentry> - </variablelist> - - </sect1> - - <sect1><title>Remerciements</title> - - <para>Je voudrais remercier les personnes suivantes pour l'aide - qu'elles m'ont apportée pour réaliser ce document:</para> - - <variablelist> - <varlistentry><term>Daniel Eischen - <email>deischen@iworks.interworks.org</email></term> - <listitem> - <para>Qui a fourni une pléthore de programmes de filtre HP - que j'ai pu réutiliser.</para> - </listitem> - </varlistentry> - - <varlistentry><term>&a.jehamby;</term> - - <listitem> - <para>Pour le filtre de conversion Ghostscript pour HP.</para> - </listitem> - </varlistentry> - - <varlistentry><term>Ma femme, Mary Kelly - <email>urquhart@argyre.colorado.edu</email></term> - - <listitem> - <para>Pour m'avoir laissé passer plus de temps avec FreeBSD - qu'avec elle.</para> - </listitem> - </varlistentry> - </variablelist> - - </sect1> - </chapter> -<!-- - Local Variables: - mode: sgml - sgml-declaration: "../chapter.decl" - sgml-indent-data: t - sgml-omittag: nil - sgml-shorttag: nil - sgml-always-quote-attributes: t - sgml-minimize-attributes: max - sgml-parent-document: ("../handbook.sgml" "part" "chapter") - End: ---> |