<!--
     The FreeBSD Documentation Project
     The FreeBSD French Documentation Project

     $FreeBSD$
     Original revision: n.nn
-->

<chapter id="printing">
   <title>Imprimer</title>
      
   <para><emphasis>Contribution de Sean 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 
      (&ldquo;spooling system&rdquo;) LPD (&ldquo;Line Printer 
      Daemon&rdquo;). C'est le gestionnaire d'impression standard de BSD. 
      Cette section d&eacute;crit le gestionnaire d'impression LPD&nbsp;-&nbsp;souvent 
      abr&eacute;g&eacute; en LPD.</para>
      
   <para>Si vous connaissez d&eacute;j&agrave; LPD ou un autre gestionnaire de files
      d'impression, vous pouvez passer directement &agrave; 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&ocirc;le tout ce qui concerne les imprimantes. Il assume
         un certain nombre de fonctions:</para>
	
      <itemizedlist>
	    
         <listitem>
            <para>Il contr&ocirc;le l'acc&egrave;s aux imprimantes locales et aux imprimantes
               connect&eacute;es &agrave; d'autres machines du r&eacute;seau.</para>
	 </listitem>
	    
	 <listitem>
	    <para>Il permet aux utilisateurs de soumettre des fichiers &agrave;
               l'impression; Ces demandes d'impression sont appel&eacute;es
	       <emphasis>travaux</emphasis>.</para>
	 </listitem>
	    
	 <listitem>
	    <para>Il emp&ecirc;che l'acc&egrave;s simultan&eacute; de plusieurs utilisateurs &agrave; une 
               m&ecirc;me imprimante en g&eacute;rant une <emphasis>queue</emphasis> pour 
               chaque imprimante.</para>
         </listitem>
	    
	 <listitem>
	    <para>Il peut imprimer <emphasis>des pages d'en-t&ecirc;te</emphasis> 
               (appel&eacute;es aussi <emphasis>banni&egrave;res</emphasis> ou pages 
               &ldquo;burst&rdquo; (qui sautent aux yeux) de fa&ccedil;on &agrave; ce que 
               les utilisateurs retrouvent facilement leurs travaux au milieu 
               d'une pile de documents imprim&eacute;s.</para>
         </listitem>
	    
	 <listitem>
	    <para>Il g&egrave;re les param&egrave;tres de communication pour les imprimantes 
               raccord&eacute;es sur un port s&eacute;rie.</para>
	 </listitem>
	    
	 <listitem>
	    <para>Il peut envoyer des travaux au gestionnaire LPD d'une autre
               machine du r&eacute;seau.</para>
	 </listitem>
	    
	 <listitem>
	    <para>Il peut ex&eacute;cuter des filtres pour formater les impressions
               en fonction des possibilit&eacute;s et du langage compris par les 
               diff&eacute;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&eacute;cifiques, vous pouvez confier &agrave; LPD tout ou une partie
         de ces t&acirc;ches, pour une large gamme de mat&eacute;riels d'impression.</para>
   </sect1>
	      
   <sect1 id="printing-intro-why">
      <title>Pourquoi faut-il utiliser le gestionnaire d'impression ?</title>
		
      <para>Si vous &ecirc;tes l'unique utilisateur de votre syst&egrave;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&ocirc;le d'acc&egrave;s, de pages d'en-t&ecirc;te ou de comptabilit&eacute;. 
	  Bien qu'il soit possible d'acc&eacute;der directement &agrave; l'imprimante, il 
          vaut mieux passer malgr&eacute; tout par le gestionnaire d'impression parce
  	  que:</para> 
		
      <itemizedlist>
		    
         <listitem>
            <para>LPD imprime les travaux en t&acirc;ches de fond; vous n'avez pas
               besoin d'attendre que l'imprimante ait re&ccedil;u vos donn&eacute;es.</para>
	 </listitem>
		    
	 <listitem>
	    <para>LPD peut appliquer des filtres aux travaux pour ajouter des 
               en-t&ecirc;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&eacute;hensible par l'imprimante. Vous n'avez pas besoin de faire
                tout cela &agrave; la main.</para>
	 </listitem>

	 <listitem>
	    <para>De nombreux logiciels libres ou commerciaux disposent d'une 
               fonctionnalit&eacute; d'impression pr&eacute;vue pour utiliser le gestionnaire
               d'impression. En installant le gestionnaire d'impression, vous 
               aurez moins de probl&egrave;mes avec les logiciels que vous installerez 
               ensuite ou qui sont d&eacute;j&agrave; sur votre syst&egrave;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&eacute;crit 
          les deux &eacute;tapes de cette configuration:</para>
		
       <itemizedlist>
		    
          <listitem>
	     <para>Lisez la section 
                <link linkend="printing-simple">Configuration simple d'une imprimante</link>
                pour apprendre &agrave; connecter une imprimante, dire &agrave; LPD comment 
                communiquer avec et imprimer des fichiers texte.</para>
          </listitem>
		    
          <listitem>
             <para>Lisez la section 
	        <link linkend="printing-advanced">Configuration avanc&eacute;e d'une imprimante</link>
                pour savoir comment imprimer 
                diff&eacute;rents formats de fichiers, imprimer des pages d'en-t&ecirc;te, 
                imprimer via le r&eacute;seau, contr&ocirc;ler l'acc&egrave;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&eacute;riel</link> 
               vous donne des indications sur la 
               connexion de l'imprimante &agrave; 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&eacute;seau 
         pour recevoir les donn&eacute;es &agrave; imprimer et non une imprimante sur 
         l'interface s&eacute;rie ou parall&egrave;le, reportez-vous &agrave; la section 
         <link linkend="printing-advanced-network-net-if">Imprimantes avec une interface 
         r&eacute;seau</link>.</para>
		
      <para>Bien que cette section soit intitul&eacute;e &ldquo;Configuration simple 
         d'une imprimante&rdquo;, elle est en fait assez complexe. Arriver &agrave; faire 
         fonctionner l'imprimante avec votre ordinateur et le gestionnaire 
         d'impression LPD est le plus difficile. Les options avanc&eacute;es comme les
         pages d'en-t&ecirc;te et la comptabilit&eacute; sont faciles &agrave; mettre en place une 
         fois que l'impression fonctionne.</para> 
		
      <sect2 id="printing-hardware">
         <title>Configuration du mat&eacute;riel</title>
		  
	    <para>Cette section vous d&eacute;taille les diff&eacute;rentes fa&ccedil;ons de 
               connecter une imprimante &agrave; votre PC. Elle traite des types de 
               ports et de c&acirc;bles et de la mani&egrave;re de configurer votre noyau 
               pour que FreeBSD puisse communiquer avec l'imprimante.</para>
		  
            <para>Si votre imprimante est d&eacute;j&agrave; connect&eacute;e et que vous pouvez 
               imprimer avec un autre syst&egrave;me d'exploitation, vous pouvez 
               peut-&ecirc;tre passer directement &agrave; la section 
               <link linkend="printing-software">Configuration du logiciel</link>.</para>
		  
         <sect3 id="printing-ports">
	    <title>Ports et C&acirc;bles</title>
		    
	    <para>Pratiquement toutes les imprimantes actuelles pour PC
               supportent l'une ou l'autre interface suivante
                &nbsp;-&nbsp;ou les deux:</para>
		    
	    <itemizedlist>
			
	       <listitem>
		  <para>Les interfaces <emphasis>s&eacute;rie</emphasis> utilisent un 
                     des ports s&eacute;rie de votre ordinateur pour envoyer des 
                     donn&eacute;es &agrave; l'imprimante. Les interfaces s&eacute;rie sont 
                     courantes dans l'industrie informatique et les c&acirc;bles 
                     existent pr&ecirc;ts &agrave; l'emploi et sont faciles &agrave; r&eacute;aliser 
                     soi-m&ecirc;me. Certaines interfaces s&eacute;rie ont besoin de c&acirc;bles 
                     particuliers ou d'une configuration un peu complexe des 
                     options de communication.</para>
	       </listitem>
			
	       <listitem>
		  <para>Les interfaces <emphasis>parall&egrave;les</emphasis> utilisent
                     un port parall&egrave;le de votre ordinateur pour envoyer des 
                     donn&eacute;es &agrave; l'imprimante. Les interfaces parall&egrave;les sont 
                     courantes sur le march&eacute; des PCs. Les c&acirc;bles existent pr&ecirc;ts &agrave;
                     l'emploi, mais sont plus difficiles &agrave; faire soi-m&ecirc;me. Il 
                     n'y a habituellement pas d'option de communication 
		     particuli&egrave;re pour les interfaces parall&egrave;les, leur
		     configuration est donc extr&ecirc;mement simple.</para>
			  
		  <para>Les interfaces parall&egrave;les sont parfois appel&eacute;es
		     interfaces &ldquo;Centronics&rdquo;, du nom du type de 
                     connecteur de l'imprimante.</para> 
               </listitem>
			
            </itemizedlist>
		    
            <para>D'une fa&ccedil;on g&eacute;n&eacute;rale, les interfaces s&eacute;rie sont plus lentes 
               que les interfaces parall&egrave;les. Les interfaces parall&egrave;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&eacute;rie. De nombreux 
               ports parall&egrave;les r&eacute;cents peuvent aussi recevoir des donn&eacute;es de 
               l'imprimante, mais seules quelques imprimantes savent renvoyer 
               des donn&eacute;es &agrave; l'ordinateur. Et FreeBSD ne supporte pas la 
               communication parall&egrave;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 &ecirc;tre tr&egrave;s bavardes. En fait, 
               les travaux PostScript sont des programmes envoy&eacute;s &agrave; 
               l'imprimante; ils ne produisent pas n&eacute;cessairement d'impression 
               et peuvent renvoyer directement leurs r&eacute;sultats &agrave; l'ordinateur. 
               PostScript utilise aussi la communication bi-directionnelle pour
               avertir l'ordinateur de probl&egrave;mes, d'erreurs dans le programme 
               PostScript ou d'un bourrage papier, par exemple. Cela peut &ecirc;tre 
               tr&egrave;s appr&eacute;ci&eacute; de vos utilisateurs. De plus, la fa&ccedil;on la plus 
               efficace de g&eacute;rer la comptabilit&eacute; 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&eacute;j&agrave; 
               imprim&eacute;es dans sa vie) puis envoyez le travail de l'utilisateur 
               et lui redemandez ensuite la valeur de son compteur de pages.
	       La diff&eacute;rence entre les deux valeurs vous donne le nombre de 
               pages &agrave; facturer &agrave; 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&eacute;rie. FreeBSD ne
                     supporte pas encore la communication bi-directionnelle sur
                     le port parall&egrave;le.</para>
	       </listitem>
			
	       <listitem>
		  <para>Si vous n'avez pas besoin de la communication parall&egrave;le
		     et avez le choix entre le port s&eacute;rie et le port parall&egrave;le,
	             pr&eacute;f&eacute;rez le port parall&egrave;le. Le port s&eacute;rie reste alors 
		     disponible pour d'autres p&eacute;riph&eacute;riques&nbsp;-&nbsp;comme un 
                     terminal ou un modem&nbsp;-&nbsp;et le port parall&egrave;le est la 
                     plupart du temps plus rapide. Il est aussi plus facile &agrave;
                     configurer.</para>
	       </listitem>
			
	       <listitem>
		  <para>En dernier lieu, utilisez ce qui fonctionne.</para>
	       </listitem>
			
            </itemizedlist>
		    
         </sect3>
		  
	 <sect3 id="printing-parallel">
	    <title>Ports parall&egrave;les</title>
		    
	    <para>Pour brancher l'imprimante sur l'interface parall&egrave;le, 
               reliez-la &agrave; l'ordinateur avec un c&acirc;ble Centronics. La 
               documentation de l'ordinateur, de l'imprimante, ou les deux, 
               devraient vous donner toutes les indications n&eacute;cessaires.</para>
		  
	    <para>Rappelez-vous quel port parall&egrave;le vous avez utilis&eacute;. FreeBSD
	       conna&icirc;t le premier port parall&egrave;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&eacute;rie</title>
		    
	    <para>Pour brancher l'imprimante sur l'interface s&eacute;rie, 
               reliez-la &agrave; l'ordinateur avec le c&acirc;ble s&eacute;rie appropri&eacute;. La
	       documentation de l'ordinateur, de l'imprimante, ou les deux, 
               devrait vous donner toutes les indications n&eacute;cessaires.</para>
		    
	    <para>Si vous n'&ecirc;tes pas certain de quel est &ldquo;le c&acirc;ble s&eacute;rie
	       appropri&eacute;&rdquo;, vous pouvez tester une des possibilit&eacute;s
	       suivantes:</para>

	    <itemizedlist>

	       <listitem>
	          <para>Un c&acirc;ble <emphasis>modem</emphasis> connecte directement
	             chaque broche d'une des extr&eacute;mit&eacute; de la liaison &agrave; la broche
                     correspondante de l'autre extr&eacute;mit&eacute;. On appelle aussi ce 
                     type de c&acirc;ble &ldquo;DTE-&agrave;-DCE&rdquo;.</para>
  	       </listitem>
			
	       <listitem>
	          <para>Un c&acirc;ble &ldquo;<emphasis>null-modem</emphasis>&rdquo; 
                     connecte certaines broches directement, en intervertit 
                     d'autres (donn&eacute;e &eacute;mise vers donn&eacute;e re&ccedil;ue) et en 
                     court-circuite certaines &agrave; chaque extr&eacute;mit&eacute;. On appelle 
                     aussi ce type de c&acirc;ble &ldquo;DTE-&agrave;-DTE&rdquo;.</para>
	       </listitem>
			
	       <listitem>
	          <para>Un c&acirc;ble pour <emphasis>imprimante s&eacute;rie</emphasis>, 
                     dont ont besoin certaines imprimantes non standard, est 
                     semblable &agrave; un c&acirc;ble &ldquo;null-modem&rdquo; mais 
                     transmet certains signaux broche &agrave; broche au lieu de les 
                     court-circuiter.</para>
 	       </listitem>
			
	    </itemizedlist>

            <para>Vous devrez aussi d&eacute;finir les param&egrave;tres de communication de 
               l'imprimante, soit avec le panneau de contr&ocirc;le frontal, soit par 
               l'interm&eacute;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&eacute;es
               7 ou 8 bits, une parit&eacute; paire, impaire ou pas de contr&ocirc;le de 
               parit&eacute;; et un ou deux bits de fin. S&eacute;lectionnez aussi le 
               protocole de contr&ocirc;le de flux: soit aucun, soit XON/XOFF (appel&eacute;
               aussi &ldquo;en ligne&rdquo; ou &ldquo;logiciel&rdquo;). Notez 
               bien ces param&egrave;tres pour l'&eacute;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&eacute;sum&eacute; des &eacute;tapes n&eacute;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&eacute;finir le mode de communication du port parall&egrave;le,
			  si c'est celui que vous utilisez; la section <link
			    linkend="printing-parallel-port-mode">D&eacute;finir le mode de
                            communication avec le port parall&egrave;le</link> vous
			    d&eacute;crit cette &eacute;tape en d&eacute;tails.</para>
		      </step>
		      
		      <step>
			<para>V&eacute;rifier que le syst&egrave;me d'exploitation peut envoyer des
			  donn&eacute;es &agrave; 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&egrave;me d'exploitation est compil&eacute; pour
		      fonctionner avec une s&eacute;lection de p&eacute;riph&eacute;riques donn&eacute;e. Les
		      interfaces s&eacute;rie ou parall&egrave;le de l'imprimante en font partie.
		      En cons&eacute;quence, il peut &ecirc;tre n&eacute;cessaire d'ajouter le suppport
		      d'un port s&eacute;rie ou parall&egrave;le si votre noyau n'est pas d&eacute;j&agrave; 
		      configur&eacute; pour cela.</para>
		    
		    <para>Pour savoir si le noyau que vous utilisez supporte une interface
		      s&eacute;rie, tapez:</para>
		      
		      <informalexample>
			<screen>&prompt.root; <userinput>dmesg | grep sio<replaceable>N</replaceable></userinput></screen>
		      </informalexample> 
                      <para>o&ugrave; <replaceable>N</replaceable> est le num&eacute;ro
		      du port s&eacute;rie, z&eacute;ro ou plus. Si vous obtenez quelque chose qui
		      ressemble &agrave;:</para>
		      
		      <informalexample>
			<screen>sio2 at 0x3e8-0x3ef irq 5 on isa
	sio2: type 16550A</screen>
		      </informalexample> <para>alors le port est bien configur&eacute; dans le
			noyau.</para>
		    
		    <para>Pour savoir si le noyau que vous utilisez supporte une interface
		      parall&egrave;le, tapez:</para>
		      
		      <informalexample>
			<screen>&prompt.root; <userinput>dmesg | grep lpt<replaceable>N</replaceable></userinput></screen>
		      </informalexample> <para>o&ugrave; <replaceable>N</replaceable> est le num&eacute;ro
		      du port parall&egrave;le, z&eacute;ro ou plus. Si vous obtenez quelque chose qui
		      ressemble &agrave;:</para>
		      
		      <informalexample>
			<screen>lpt0 at 0x378-0x37f on isa</screen>
		      </informalexample> <para>alors le port est bien configur&eacute; dans le
			noyau.</para>
		    
		    <para>Vous devrez peut-&ecirc;tre reconfigurer votre noyau pour que
		      le syst&egrave;me d'exploitation reconnaisse et puisse utiliser le
		      port s&eacute;rie ou parall&egrave;le que vous affectez &agrave; votre 
		      imprimante.</para>
		    
		    <para>Pour ajouter le support d'un port s&eacute;rie, reportez-vous
		      au chapitre <link linkend="kernelconfig">Configurer le noyau de 
                      FreeBSD</link>. Pour ajouter le
		      support d'un port parall&egrave;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&eacute;es  pour les ports
			 dans le r&eacute;pertoire <filename>/dev</filename></title> 

		      
		      <para>M&ecirc;me si le noyau supporte d&eacute;j&agrave; les communications 
			sur le port s&eacute;rie ou parall&egrave;le, il vous faut encore
			une interface logicielle pour que les programmes 
			puissent envoyer et recevoir des donn&eacute;es. C'est &agrave; cela
			que servent les entr&eacute;es du r&eacute;pertoire
			<filename>/dev</filename>.</para>
		      
		      <para><emphasis>Pour ajouter une entr&eacute;e pour un port au 
			  r&eacute;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&eacute;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&ugrave; <replaceable>port</replaceable> est                       l'entr&eacute;e (fichier sp&eacute;cial de p&eacute;riph&eacute;rique) que vous voulez
			      cr&eacute;er. Utilisez <literal>lpt0</literal> pour le premier
			      port parall&egrave;le, <literal>lpt1</literal> pour le second, et
			      ainsi de suite; utilisez <literal>ttyd0</literal> pour le
			      premier port s&eacute;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&eacute;e a bien 
			       &eacute;t&eacute; cr&eacute;&eacute;e.</para>
			  </step>
			  
			</procedure>
		      
		    </sect4>
		    
		    <sect4
		      id="printing-parallel-port-mode">
		      <title>D&eacute;finir le mode de communication avec le port 
			 parall&egrave;le</title>
		      
		      <para>Si vous utilisez l'interface parall&egrave;le, vous pouvez 
			choisir que FreeBSD communique avec l'imprimante en
			l'interrogeant r&eacute;guli&egrave;rement ou par interruptions.</para>
		      
		      
			<itemizedlist>
			  
			  <listitem>
			    <para>La m&eacute;thode 
			      <emphasis>pilot&eacute;e par interruptions</emphasis> est la
			      m&eacute;thode par d&eacute;faut du noyau GENERIC. Le syst&egrave;me 
			      d'exploitation utilise dans ce cas une ligne IRQ pour
			      savoir si l'imprimante est pr&ecirc;te &agrave; recevoir des
			      donn&eacute;es.</para>
			  </listitem>
			  
			  <listitem>
			    <para>La m&eacute;thode 
			       <emphasis>par interrogations</emphasis> demande au
			       syst&egrave;me d'interroger &agrave; intervalles r&eacute;guliers l'imprimante
			       pour savoir si elle peut accepter de nouvelles donn&eacute;es.
			       D&egrave;s que la r&eacute;ponse est positive, le noyau lui envoie
			       de nouvelles donn&eacute;es.</para>
			  </listitem>
			  
			</itemizedlist>
		      
		      
		      <para>La m&eacute;thode par interruptions est plus rapide mais mobilise
			 une ligne IRQ pr&eacute;cieuse. Utilisez ce qui fonctionne.</para>
		      
		      <para>Vous pouvez d&eacute;finir le mode de communication de deux
			fa&ccedil;ons: en configurant le noyau ou avec la commande
		  <citerefentry><refentrytitle>lptcontrol</refentrytitle></citerefentry>.</para>
		      
		      <para><emphasis>Pour d&eacute;finir le mode de communication &agrave; la
			  configuration du noyau:</emphasis></para>

			<procedure>
			  
			  <step>
			    <para>Editez votre fichier de configuration du noyau
			      et cherchez ou ajoutez l'entr&eacute;e <literal>lpt0</literal>.
			      Si vous utilisez le second port parall&egrave;le, mettez
			      <literal>lpt1</literal> &agrave; la place,
			      <literal>lpt2</literal> pour le troisi&egrave;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&ugrave; <replaceable>N</replaceable> 
				     est le num&eacute;ro d'IRQ du port parall&egrave;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&eacute;marrez votre syst&egrave;me. 
			      Reportez-vous au chapitre
			      <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link>
			      pour plus de d&eacute;tails.</para>
			  </step>
			  
			</procedure>
		      
		      <para><emphasis>Pour d&eacute;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&eacute;finir le mode
			&agrave; chaque red&eacute;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 &agrave; la configuration du gestionnaire
			d'impression, vous devriez vous assurer que le syst&egrave;me
			d'exploitation arrive &agrave; envoyer des donn&eacute;es &agrave; l'imprimante.
			Il est plus facile de mettre s&eacute;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&eacute;diatement les caract&egrave;res qu'on
			leur envoie, le programme
			<citerefentry>
			  <refentrytitle>lptest</refentrytitle></citerefentry> 
			est id&eacute;al: il g&eacute;n&egrave;re les 96 caract&egrave;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&eacute;.
			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 
			  &ldquo;langage d'impression&rdquo;, je me r&eacute;f&egrave;re &agrave;
			  un langage du type PostScript et non du genre PCL de
			  Hewlett Packard, bien que PCL ait d'excellentes
			  fonctionnalit&eacute;s&nbsp;-&nbsp;on peut ins&eacute;rer du texte au milieu
			  de ses s&eacute;quences d'&eacute;chappement. PostScript ne peut
			  imprimer directement du texte, et c'est pour ce genre
			  de langage qu'il y a des mesures particuli&egrave;res &agrave;
			  prendre.</para>
		      </note>
		      
		      <sect5
			id="printing-checking-parallel">
			<title>Tester une imprimante parall&egrave;le</title>
			
			<para>Cette section vous explique comment tester si FreeBSD
			  peut communiquer avec une imprimante connect&eacute;e sur un port
			  parall&egrave;le.</para>
			
			<para><emphasis>Pour tester une imprimante sur un port
			    parall&egrave;le:</emphasis></para>
			
			  <procedure>
			    
			    <step>
			      <para>Devenez super-utilisateur avec <citerefentry>
				  <refentrytitle>su</refentrytitle></citerefentry>.</para>
			    </step>
			    
			    <step>
			      <para>Envoyez des donn&eacute;es &agrave; 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 &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
				      </informalexample> o&ugrave; <replaceable>N</replaceable>
				      est le num&eacute;ro du port parall&egrave;le, &agrave; partir de
				      z&eacute;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 &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
				      </informalexample> Puis tapez votre programme
				      ligne &agrave; ligne
				      <emphasis>avec soin</emphasis> car vous ne pouvez
				      pas corriger la ligne une fois que vous avez tap&eacute;
				      Entr&eacute;e. Quand vous avez fini de saisir votre
				      programme, tapez CONTROL+D, ou une autre 
				      combinaison particuli&egrave;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> &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
				      </informalexample> o&ugrave; <replaceable>fichier</replaceable>
				      est le nom du fichier contenant le programme que
				      vous voulez envoyer &agrave; l'imprimante.</para>
				  </listitem>
				  
				</itemizedlist>
			      </para>
			    </step>
			    
			  </procedure>
			
			<para>Vous devriez obtenir une impression. Ne vous inqui&eacute;tez pas
			  si le texte ne s'imprime pas correctement; nous r&eacute;glerons ces
			  probl&egrave;mes ensuite.</para>
			
		      </sect5>
		      
		      <sect5
			id="printing-checking-serial">
			<title>Tester une imprimante s&eacute;rie</title>
			
			<para>Cette section vous explique comment tester si FreeBSD
			  peut communiquer avec une imprimante connect&eacute;e sur un port
			  s&eacute;rie.</para>
			
			<para><emphasis>Pour tester une imprimante sur un port
			    s&eacute;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&eacute;</replaceable>
				</programlisting> o&ugrave; <replaceable>port</replaceable> 
				est le fichier sp&eacute;cial de p&eacute;riph&eacute;rique pour le port
				s&eacute;rie (<literal>ttyd0</literal>,
				<literal>ttyd1</literal>, etc...), <replaceable>bps</replaceable> est la vitesse de communication en bits par seconde,
				et <replaceable>parit&eacute;</replaceable> est la parit&eacute; 
				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&eacute;e par
				une ligne s&eacute;rie au troisi&egrave;me port s&eacute;rie, &agrave; 19200 bps,
				sans contr&ocirc;le de parit&eacute;:
			      
				<programlisting>
	printer:dv=/dev/ttyd2:br#19200:pa=none
				</programlisting></para>
			    </step>
			    
			    <step>
			      <para>Connectez-vous &agrave; l'imprimante avec <citerefentry>
				  <refentrytitle>tip</refentrytitle></citerefentry>. Tapez:
				<informalexample>
				  <screen>&prompt.root; <userinput>tip printer</userinput></screen>
				</informalexample> Si cela ne marche pas, &eacute;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&eacute;es &agrave; 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
				      &agrave; ligne, en faisant 
				      <emphasis>tr&egrave;s attention</emphasis> car le retour
				      arri&egrave;re ou d'autres touches d'&eacute;ditions peuvent
				      vouloir dire autre chose pour l'imprimante.
				      Vous devrez peut-&ecirc;tre aussi utiliser un caract&egrave;re
				      particulier de fin de fichier pour que 
				      l'imprimante sache qu'elle a re&ccedil;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>&gt;<replaceable>fichier</replaceable></userinput></screen>
				      </informalexample> o&ugrave; <replaceable>fichier</replaceable> est le nom du fichier contenant le programme. Apr&egrave;s que 
				      <citerefentry>
					<refentrytitle>tip</refentrytitle></citerefentry> ait envoy&eacute; le fichier, appuyez sur la touche de fin de fichier ad&eacute;quate.</para>
				  </listitem>
				  
				</itemizedlist>
			      </para>
			    </step>
			    
			  </procedure>
			
			<para>Vous devriez obtenir une impression. Ne vous inqui&eacute;tez pas
			  si le texte ne s'imprime pas correctement; nous r&eacute;glerons ces
			  probl&egrave;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 &ecirc;tre connect&eacute;e, votre
		      noyau configur&eacute; (au besoin) pour communiquer avec, et vous devriez
		      avoir r&eacute;ussi &agrave; lui envoyer un minimum de donn&eacute;es. Nous sommes
		      maintenant pr&ecirc;t &agrave; configurer LPD pour qu'il contr&ocirc;le l'acc&egrave;s &agrave;
		      votre imprimante.</para>
		    
		    <para>Vous configurez LPD en &eacute;ditant le fichier
		      <filename>/etc/printcap</filename>. Le gestionnaire d'impression
		      LPD lit ce fichier chaque fois qu'il est fait appel &agrave; lui, les
		      modifications s'appliquent donc imm&eacute;diatement.</para>
		    
		    <para>Le format du fichier <citerefentry>
			<refentrytitle>printcap</refentrytitle></citerefentry> est
			explicite. Utilisez votre &eacute;diteur de texte pr&eacute;f&eacute;r&eacute; pour le
			modifier. Son format est similaire &agrave; celui des fichiers 
			associ&eacute;s &agrave; d'autres utilitaires comme 
			<filename>/usr/share/misc/termcap</filename> et
			<filename>/etc/remote</filename>. Pour une description compl&egrave;te
			de ce format, reportez-vous &agrave; 
			<citerefentry><refentrytitle>cgetent</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
		    
		    <para>Une configuration de base du gestionnaire d'impression passe
		      par les &eacute;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 &agrave;
			      la section <link
			      linkend="printing-naming">Donner un nom &agrave; l'imprimante</link>.</para>
			</step>
			
			<step>
			  <para>D&eacute;sactivez l'impression des pages d'en-t&ecirc;te (qui sont
			    en service par d&eacute;faut) en ins&eacute;rant la fonctionnalit&eacute;
			    <literal>sh</literal>;
			    reportez-vous &agrave; la section
			    <link linkend="printing-no-header-pages">Supprimer l'impression des pages 
                            d'en-t&ecirc;te</link>.</para>
			</step>
			
			<step>
			  <para>Cr&eacute;ez un r&eacute;pertoire pour la file d'attente, et indiquez
			    o&ugrave; il se trouve avec l'option <literal>sd</literal>; 
			    reportez-vous &agrave; la section <link linkend="printing-spooldir">Cr&eacute;er
                            le r&eacute;pertoire tampon</link>.</para>
			</step>
			
			<step>
			  <para>Identifiez l'entr&eacute;e <filename>/dev</filename> &agrave; utiliser
			    avec cette imprimante et reportez-la dans le fichier
			    <filename>/etc/printcap</filename> avec l'option
			    <literal>lp</literal>; reportez-vous &agrave; la section
			    <link
			      linkend="printing-device">D&eacute;finir le p&eacute;riph&eacute;rique
			      associ&eacute; &agrave; l'imprimante</link>. Si l'imprimante est sur un port s&eacute;rie, vous
			      devez aussi pr&eacute;ciser les param&egrave;tres de communication
			      avec les options
			  <literal>fs</literal>, <literal>fc</literal>,
			  <literal>xs</literal>, et <literal>xc</literal>; 
			      reportez-vous &agrave; la section <link
			      linkend="printing-commparam">Configurer les param&egrave;tres
                              de communication du gestionnaire d'impression</link>.</para>
			</step>
			
			<step>
			  <para>Installez un filtre pour l'impression de fichiers texte;
			      reportez-vous &agrave; 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&eacute;gler
			      les probl&egrave;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&eacute;sum&eacute;e ci-desssus, et
			d&eacute;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 &agrave; pouvoir imprimer
		      du texte simple sur toutes les imprimantes de votre syst&egrave;me.
		      Les programmes qui font appel &agrave; LPD font la m&ecirc;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 &eacute;tape suppl&eacute;mentaire &agrave; la proc&eacute;dure r&eacute;sum&eacute;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 &agrave; l'imprimante</title>
		      
		      <para>La premi&egrave;re &eacute;tape (facile) consiste &agrave; donner 
			un nom &agrave; l'imprimante. Cela n'a pas d'importance que vous lui
                        donniez un nom fonctionnel ou nom bizarre parce que vous
			pouvez aussi d&eacute;finir un certain nombre d'alias.</para>
		      
		      <para>Au moins l'une des imprimantes que vous d&eacute;finirez dans
			le fichier <filename>/etc/printcap</filename> devrait s'appeler
			<literal>lp</literal>. C'est le nom de l'imprimante par d&eacute;faut.
			Si les utilisateurs ne d&eacute;finissent pas leur variable 
			d'environnement PRINTER et ne pr&eacute;cisent pas le nom de
			l'imprimante avec une des commandes de LPD, alors
			<literal>lp</literal> est l'imprimante par d&eacute;faut &agrave; laquelle ils
			s'adressent.</para>
		      
		      <para>Il est aussi d'usage que le dernier alias d'une imprimante
			 la d&eacute;crive compl&egrave;tement, marque et mod&egrave;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 &ecirc;tre &eacute;crit au d&eacute;but de la ligne. S&eacute;parez chaque alias
			 par une barre verticale et mettez un &ldquo;:&rdquo; apr&egrave;s
			 le dernier alias.</para>
		      
		      <para>L'exemple suivant montre un fichier
			<filename>/etc/printcap</filename> de base, qui d&eacute;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&egrave;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&eacute;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&ecirc;te</title>
		      
		      <para>Le gestionnaire d'impression g&eacute;n&eacute;rera par d&eacute;faut
			 une page d'en-t&ecirc;te pour chaque travail d'impression. La page
			 d'en-t&ecirc;te affiche le nom de l'utilisateur qui l'a soumis,
			 le nom de la machine d'o&ugrave; il a &eacute;t&eacute; lanc&eacute; et le nom du
			 travail d'impression, le tout en grosses lettres. 
			 Malheureusement, tout ce texte suppl&eacute;mentaire complique la
			 mise au point de la configuration des imprimantes, aussi
			 supprimerons-nous les pages d'en-t&ecirc;te.</para>
		      
		      <para>Pour supprimer les pages d'en-t&ecirc;te, 
			ajoutez la fonctionnalit&eacute;
			<literal>sh</literal> &agrave; l'entr&eacute;e associ&eacute;e &agrave; l'imprimante dans
			le fichier <filename>/etc/printcap</filename>. Voici un exemple
			de fichier <filename>/etc/printcap</filename> o&ugrave; l'on a ajout&eacute;
			<literal>sh</literal>:</para>
			
			<programlisting>
	#
	#  /etc/printcap pour la machine rose - pas de pages d'en-t&ecirc;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&egrave;re ligne commence 
			imm&eacute;diatement &agrave; gauche, et les lignes suivantes sont indent&eacute;es
			avec un seul caract&egrave;re Tab. Chaque ligne d'une m&ecirc;me entr&eacute;e, sauf
			la derni&egrave;re, se termine par une barre oblique inverse.</para>
		      
		    </sect4>
		    
		    <sect4
		      id="printing-spooldir">
		      <title>Cr&eacute;er le r&eacute;pertoire tampon</title>
		      
		      <para>L'&eacute;tape suivante de la configuration de base du gestionnaire
			d'impression consiste &agrave; cr&eacute;er un
			<emphasis>r&eacute;pertoire tampon</emphasis>, o&ugrave; les travaux 
			d'impression attendent d'&ecirc;tre trait&eacute;s et o&ugrave; se trouvent aussi
			un certain nombre de fichiers n&eacute;cessaires au gestionnaire
			d'impression.</para>
		      
		      <para>Comme le contenu de ces r&eacute;pertoires tampon est transitoire,
			 il est habituel de les mettre dans le r&eacute;pertoire
			<filename>/var/spool</filename>. Ces r&eacute;pertoires n'ont pas non
			plus besoin d'&ecirc;tre archiv&eacute;s. Il suffit d'un simple
			<citerefentry>
			  <refentrytitle>mkdir</refentrytitle></citerefentry> pour
			les recr&eacute;er.</para>
		      
		      <para>L'usage veut que l'on donne au r&eacute;pertoire le m&ecirc;me nom 
			qu'&agrave; 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&eacute;seau, vous voudrez peut-&ecirc;tre regrouper tous les
			r&eacute;pertoires tampon dans un seul r&eacute;pertoire qui sera r&eacute;serv&eacute; 
			&agrave; 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&eacute; des travaux d'impression de
			  vos utilisateurs vous pr&eacute;occuppe, vous pouvez prot&eacute;ger
			  le r&eacute;pertoire tampon pour qu'il ne soit pas accessible
			  &agrave; tout le monde. Les r&eacute;pertoires tampon doivent appartenir,
			  &ecirc;tre accessibles en lecture et en &eacute;criture et pouvoir &ecirc;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 &agrave; LPD les noms de ces
			r&eacute;pertoires par l'interm&eacute;diaire du fichier 
			<filename>/etc/printcap</filename>. Cela se fait avec
			la fonctionnalit&eacute;
			<literal remap="tt">sd</literal>:</para>

			<programlisting>
	#
	#  /etc/printcap pour la machine rose - ajout des r&eacute;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&egrave;re
			colonne, que toutes les autres lignes doivent &ecirc;tre indent&eacute;es
			par une tabulation et que toutes les lignes sauf la derni&egrave;re
			se terminent par une barre oblique inverse.</para>
		      
		      <para>Si vous ne d&eacute;finissez pas le r&eacute;pertoire tampon avec
			<literal>sd</literal>, le gestionnaire d'impression utilisera
			<filename>/var/spool/lpd</filename> par d&eacute;faut.</para>
		      
		    </sect4>
		    
		    <sect4 id="printing-device">
		      <title>D&eacute;finir le p&eacute;riph&eacute;rique associ&eacute; &agrave; l'imprimante</title>
		      
		      <para>Dans la section <link linkend="printing-dev-ports">Ajouter
                        les entr&eacute;es pour les ports dans le r&eacute;pertoire <filename>/dev</filename></link>,
			nous avons identifi&eacute; l'entr&eacute;e du r&eacute;pertoire <filename>/dev</filename> 
			via laquelle FreeBSD communiquera avec l'imprimante. Il faut
			maintenant donner cette information &agrave; LPD. Quand le gestionnaire
			aura un travail &agrave; imprimer, il ouvrira le fichier sp&eacute;cial
			pour les besoins du programme filtre (qui envoie les donn&eacute;es
			&agrave; l'imprimante).</para>
		      
		      <para>Indiquez l'entr&eacute;e <filename>/dev</filename> utilis&eacute;e avec
			 la fonctionnalit&eacute; <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&egrave;le et
			et l'imprimante <hostid>bamboo</hostid> sur le sixi&egrave;me; voici
			ce qu'il faut ajouter au fichier
			<filename>/etc/printcap</filename>:</para>
			
			<programlisting>
	#
	#  /etc/printcap pour la machine rose 
        #  d&eacute;finition des p&eacute;riph&eacute;riques &agrave; 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> &agrave; une imprimante
			dans le fichier
			<filename>/etc/printcap</filename>, LPD utilise
			<filename>/dev/lp</filename> par d&eacute;faut.
			<filename>/dev/lp</filename> n'existe actuellement pas sous
			FreeBSD.</para>
		      
		      <para>Si l'imprimante est connect&eacute;e &agrave; un port parall&egrave;le, allez
			directement &agrave; 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&egrave;tres de communication du gestionnaire
			 d'impression</title>
		      
		      <para>Pour les imprimantes sur des ports s&eacute;rie, LPD peut d&eacute;finir
			la vitesse en bps, la parit&eacute; et les autres param&egrave;tres de
			communication s&eacute;rie, pour les besoins du programme filtre, qui
			envoie les donn&eacute;es &agrave; l'imprimante. C'est int&eacute;ressant parce que:
			
			<itemizedlist>
			  
			  <listitem>
			    <para>Cela vous permet de tester des valeurs diff&eacute;rentes
			      des param&egrave;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&ecirc;me programme filtre pour diff&eacute;rentes imprimantes
			      qui n'ont pas les m&ecirc;mes param&egrave;tres de 
			      communication.</para>
			  </listitem>
			  
			</itemizedlist>
		      </para>
		      
		      <para>Les fonctionnalit&eacute;s suivantes de 
			<filename>/etc/printcap</filename>
			contr&ocirc;lent les param&egrave;tres de communication s&eacute;rie du p&eacute;riph&eacute;rique
			sp&eacute;cifi&eacute; avec la fonctionnalit&eacute; 
			<emphasis remap=tt>lp</emphasis>:

			<variablelist>
			  <varlistentry><term><literal>br#<replaceable>vitesse_en_bps</replaceable></literal></term>
			    <listitem>
			      <para>Fixe la vitesse de communication &agrave;
				<replaceable>vitesse_en_bps</replaceable>, o&ugrave;
				<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_&agrave;_r&eacute;initialiser</replaceable></literal></term>
			    
			    <listitem>
			      <para>R&eacute;initialise les indicateurs
				<replaceable>bits_&agrave;_r&eacute;initialiser</replaceable> de la
				structure <replaceable>sgttyb</replaceable>
				apr&egrave;s avoir ouvert le fichier sp&eacute;cial de 
				p&eacute;riph&eacute;rique.</para>
			    </listitem>
			  </varlistentry>
			  
			  <varlistentry><term><literal>fs#<replaceable>bits_&agrave;_positionner</replaceable></literal></term>
			    
			    <listitem>
			      <para>Positionne les indicateurs
				<replaceable>bits_&agrave;_positionner</replaceable> de la
				structure <replaceable>sgttyb</replaceable>.</para>
			    </listitem>
			  </varlistentry>
			  
			  <varlistentry><term><literal>xc#<replaceable>bits_&agrave;_r&eacute;initialiser</replaceable></literal></term>
			    
			    <listitem>
			      <para>R&eacute;initialise les indicateurs du mode local
				<replaceable>bits_&agrave;_r&eacute;nitialiser</replaceable> 
				apr&egrave;s avoir ouvert le fichier sp&eacute;cial de 
				p&eacute;riph&eacute;rique.</para>
			    </listitem>
			  </varlistentry>
			  
			  <varlistentry><term><literal>xs#<replaceable>bits_&agrave;_positionner</replaceable></literal></term>
			    
			    <listitem>
			      <para>Positionne les indicateurs du mode local
				<replaceable>bits_&agrave;_positionner</replaceable>.</para>
			    </listitem>
			  </varlistentry>
			</variablelist> Pour plus d'informations sur les bits manipul&eacute;s
			par les fonctionnalit&eacute;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&eacute;riph&eacute;rique d&eacute;fini par la fonctionnalit&eacute;
		      <literal>lp</literal>, il lit les indicateurs de la structure
			<literal>sgttyb</literal>; il r&eacute;initialise les bits d&eacute;finis
			par la fonctionnalit&eacute; <literal remap="tt">fc</literal>,
			puis positionne ceux d&eacute;finis par la fonctionnalit&eacute; 
			<literal>fs</literal> et applique le param&egrave;trage ainsi d&eacute;fini.
			Il fait de m&ecirc;me pour les indicateurs du mode local.</para>
		      
		      <para>Compl&eacute;tons notre exemple pour l'imprimante sur le 
			sixi&egrave;me port s&eacute;rie. Nous fixerons la vitesse &agrave; 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&ecirc;ts &agrave; dire &agrave; LPD quel filtre
			texte utiliser pour envoyer les travaux &agrave; l'imprimante.
			Un <emphasis>filtre texte</emphasis>, aussi appel&eacute;
			<emphasis>filtre d'entr&eacute;e</emphasis>, est un programme que LPD
			ex&eacute;cute quand il a un travail &agrave; imprimer. Quand LPD
			ex&eacute;cute un filtre texte pour une imprimante, il affecte
			&agrave; l'entr&eacute;e standard du filtre le travail &agrave; imprimer et &agrave;
			sa sortie standard le fichier sp&eacute;cial de p&eacute;riph&eacute;rique
			d&eacute;fini par la fonctionnalit&eacute; <literal>lp</literal>. 
			Le filtre est
			suppos&eacute; lire le travail sur l'entr&eacute;e standard, effectuer le
			transcodage n&eacute;cessaire et envoyer le r&eacute;sultat sur la sortie 
			standard. Pour plus d'informations sur les filtres texte,
			reportez-vous &agrave; la section <link
			  linkend="printing-advanced-filters">Comment
			  fonctionnent les filtres</link>.</para>
		      
		      <para>Pour notre exemple de configuration simple, le filtre texte
			peut &ecirc;tre une petite proc&eacute;dure qui ex&eacute;cute seulement
			<command>/bin/cat</command> pour envoyer le travail &agrave;
			l'imprimante. FreeBSD est livr&eacute; avec un autre filtre appel&eacute;
			<filename>lpf</filename> qui g&egrave;re les retours arri&egrave;re et les
			soulign&eacute;s pour les imprimantes qui ne traitent pas bien ces
			caract&egrave;res de contr&ocirc;le. Et, bien s&ucirc;r, vous pouvez utilisez le 
			filtre que vous voulez. Le filtre <command>lpf</command> est
			d&eacute;crit en d&eacute;tail &agrave; la section 
			<link linkend="printing-advanced-lpf"><command>lpf</command>: un 
                        filtre texte</link>.</para>
		      
		      <para>Cr&eacute;ons d'abord le filtre texte &eacute;l&eacute;mentaire
			<filename>/usr/local/libexec/if-simple</filename>.
			Avec votre &eacute;diteur de texte favori, donnez &agrave; ce fichier
			le contenu suivant:
			
			<programlisting>
	#!/bin/sh
	#
	# if-simple - filtre texte &eacute;l&eacute;mentaire pour lpd
	# fichier /usr/local/libexec/if-simple
	#
	# copie simplement stdin dans stdout. Ne prend aucun argument.

	/bin/cat &amp;&amp; exit 0
	exit 2
			</programlisting>
			Mettez les droits d'ex&eacute;cution sur le fichier:
			
			<informalexample>
			  <screen>&prompt.root; <userinput>chmod 555 /usr/local/libexec/if-simple</userinput></screen>
			</informalexample></para>
		      
		      <para>Et pr&eacute;cisez maintenant &agrave; LPD de l'utiliser 
			avec la fonctionnalit&eacute;
			<literal>if</literal> de
			<filename>/etc/printcap</filename>. Nous l'affecterons aux deux 
			imprimantes que nous avons d&eacute;j&agrave; 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&eacute; la configuration simple de LPD.
			Malheureusement, les f&eacute;licitations ne sont pas encore de mise,
			il nous faut d'abord faire une essai et r&eacute;gler tous les
			probl&egrave;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&eacute; &agrave; la section 
			  <link linkend="printing-testing">Tester la communication avec
			  l'imprimante</link>, pour g&eacute;n&eacute;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&ugrave; <emphasis
			  remap=it>imprimante</emphasis> est le nom d'une imprimante
			(ou un alias) d&eacute;finie dans <filename>/etc/printcap</filename>.
			Pour tester l'imprimante par d&eacute;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&eacute;sultats du programme. Si vous utilisez <citerefentry>
			  <refentrytitle>lptest</refentrytitle></citerefentry>, 
			alors le r&eacute;sultat devrait ressembler &agrave; ce qui suit:</para>
		      
		      <programlisting>
	!"#$%&amp;'()*+,-./01234
	"#$%&amp;'()*+,-./012345
	#$%&amp;'()*+,-./0123456
	$%&amp;'()*+,-./01234567
	%&amp;'()*+,-./012345678
		      </programlisting>
		      
		      <para>Pour faire d'autres essais, envoyez des programmes plus 
			longs (aux imprimantes qui comprennent un langage) ou 
			ex&eacute;cutez <citerefentry>
			  <refentrytitle>lptest</refentrytitle></citerefentry> avec
			  d'autres arguments. Par exemple, <command>lptest 80 60</command> qui g&eacute;n&eacute;rera 60 lignes de 80 caract&egrave;res chacune.</para>
		      
		      <para>Si l'imprimante ne fonctionne pas, voyez la section suivante  <link
			  linkend="printing-troubleshooting">R&eacute;gler les probl&egrave;mes</link>.</para>
		      
		    </sect4>
		    
		    <sect4
		      id="printing-troubleshooting">
		      <title>R&eacute;gler les probl&egrave;mes</title>
		      
		      <para>Apr&egrave;s le test &eacute;l&eacute;mentaire avec  <citerefentry>
			  <refentrytitle>lptest</refentrytitle></citerefentry>, vous
			 pouvez avoir rencontr&eacute; l'un des probl&egrave;mes suivants, au lieu
			 d'obtenir une impression correcte:</para>
		      
			<variablelist>
			  <varlistentry><term>Cela a march&eacute; quelque temps; ou,
			     l'imprimante n'a pas &eacute;ject&eacute; la page.</term>
			    <listitem>
			      <para>L'imprimante a bien imprim&eacute; les r&eacute;sultats du
				test ci-dessus, puis s'est arr&ecirc;t&eacute;e et n'a rien fait.
				Il vous aurait peut &ecirc;tre fallu appuyer sur le bouton
				&ldquo;Avance Papier&rdquo; ou &ldquo;Continuer
				l'Impression&rdquo; 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&eacute;gler le probl&egrave;me, vous pouvez modifier
				le filtre texte pour qu'il envoie un caract&egrave;re de saut
				de page (&ldquo;FORM FEED&rdquo;)&nbsp;-&nbsp;ou tout autre
				caract&egrave;re n&eacute;cessaire&nbsp;-&nbsp;&agrave; l'imprimante. Cela suffit
				g&eacute;n&eacute;ralement pour que l'imprimante traite imm&eacute;diatement
				le texte qu'elle a encore en m&eacute;moire. C'est aussi 
				utile pour &ecirc;tre s&ucirc;r que chaque travail d'impression
				se termine sur une page compl&egrave;te, de sorte que le 
				travail suivant ne commence pas sur la derni&egrave;re page
				du travail qui le pr&eacute;c&egrave;de.</para>
			      
			      <para>Voici une proc&eacute;dure
				<filename>/usr/local/libexec/if-simple</filename>
				modifi&eacute;e qui envoie un saut de page &agrave; la fin du
				travail d'impression:

				<programlisting>
	#!/bin/sh
	#
	# if-simple - filtre texte &eacute;l&eacute;mentaire pour lpd
	# fichier /usr/local/libexec/if-simple
	#
	# copie simplement stdin dans stdout. Ne prend aucun argument.
	# envoie un caract&egrave;re de saut de page (\f) en fin d'impression.

	/bin/cat &amp;&amp; printf "\f" &amp;&amp; exit 0
	exit 2
				</programlisting></para>
			    </listitem>
			  </varlistentry>
			  
			  <varlistentry><term>Le texte s'est imprim&eacute; &ldquo;en
			      escalier.&rdquo;</term>
			    
			    <listitem>
			      <para>Si vous obtenez ce qui suit:

				<programlisting>
        !"#$%&amp;'()*+,-./01234
                            "#$%&amp;'()*+,-./012345
                                                $%&amp;'()*+,-./0123456
				</programlisting>
				vous &ecirc;tes la nouvelle victime de
				l'<emphasis>effet d'escalier</emphasis>, d&ucirc; &agrave; une
				interpr&eacute;tation divergente des caract&egrave;res de saut de
				ligne. Les syst&egrave;mes d'exploitation de type Unix 
				utilisent un seul caract&egrave;re: le code ASCII 10, ou
				saut de ligne (LF&nbsp;-&nbsp;&ldquo;Line Feed&rdquo;).
				MS-DOS, OS/2 et d'autres utilisent deux caract&egrave;res,
				le code ASCII 10 <emphasis>et</emphasis> le code ASCII 
				13 (le retour-chariot ou CR&nbsp;-&nbsp;&ldquo;Carriage Return&rdquo;). 
				De nombreuses imprimantes emploient les conventions
				MS-DOS pour passer &agrave; la ligne.</para>
			      
			      <para>Quand vous imprimez avec FreeBSD, votre texte ne
				contient que le caract&egrave;re de saut de ligne. L'imprimante
				passe alors &agrave; la ligne suivante, mais ne revient pas
				en d&eacute;but de ligne. C'est &agrave; cela que sert le 
				retour-chariot: revenir au d&eacute;but de ligne avant 
				d'imprimer le prochain caract&egrave;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&ccedil;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&ccedil;ons d'y arriver:
				<itemizedlist>
				  
				  <listitem>
				    <para>Utilisez les interrupteurs du panneau de 
				      contr&ocirc;le de l'imprimante pour modifier la fa&ccedil;on
				      dont elle interpr&egrave;te ces caract&egrave;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&egrave;mes d'exploitation que FreeBSD,
					vous devrez peut-&ecirc;tre 
					<emphasis>configurer</emphasis> votre
					imprimante pour qu'elle interpr&egrave;te CR et LF
					en fonction de la mani&egrave;re dont ces autres 
					syst&egrave;mes d'exploitation les utilisent. Vous
					pr&eacute;f&eacute;rerez alors une des autres solutions
					ci-dessous.</para> 
				    </note>
				  </listitem>
				  
				  <listitem>
				    <para>Faire en sorte que le pilote de liaison s&eacute;rie
				      de FreeBSD convertisse les LF en CR+LF. Cela ne
				      marche, bien entendu, <emphasis>qu'avec</emphasis>
				      les imprimantes sur des ports s&eacute;rie. Pour cela,
				      positionnez le bit CRMOD de la fonctionnalit&eacute;
					<emphasis remap="tt">fs</emphasis> de l'imprimante dans
				      le fichier 
				      <filename>/etc/printcap</filename>.</para>
				  </listitem>
				  
				  <listitem>
				    <para>Envoyer une 
				      <emphasis>s&eacute;quence d'&eacute;chappement</emphasis> &agrave;
				      l'imprimante pour qu'elle traite temporairement
				      les caract&egrave;res LF de fa&ccedil;on diff&eacute;rente. Consultez
				      la documentation de votre imprimante pour
				      conna&icirc;tre la commande ad&eacute;quate. Une fois que vous
				      l'avez trouv&eacute;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&eacute;quences 
				      d'&eacute;chappement du langage PCL de Hewlett-Packard.
				      Ce filtre envoie la commande qui dit &agrave; 
				      l'imprimante de traiter les caract&egrave;res LF comme
				      un CR et un LF, puis le travail d'impression et
				      enfin un saut de page pour &eacute;jecter la derni&egrave;re
				      page. Il devrait &ecirc;tre utilisable avec presque
				      toutes les imprimantes Hewlett-Packard.</para>
				    
				    <programlisting>
	#!/bin/sh
	#
	# hpif - filtre texte &eacute;l&eacute;mentaire pour lpd 
        # pour les imprimantes compatibles HP-PCL
	# fichier /usr/local/libexec/hpif
	#
	# copie simplement stdin dans stdout. Ne prend aucun argument.
	# dit &agrave; l'imprimante de traiter LF comme un CR+LF 
# envoie un caractere de saut de page (\f) en fin d'impression.

printf "\033&amp;k2G" &amp;&amp; cat &amp;&amp; printf "\f" &amp;&amp; exit 0
exit 2
			    </programlisting>
			    
			    <para>Voici un exemple de fichier
			      <filename>/etc/printcap</filename> pour une
			      machine appel&eacute;e orchid. Elle a une seule
			      imprimante sur son premier port parall&egrave;le, une
			      LaserJet 3Si Hewlett-Packard appel&eacute;e
				      <hostid>teak</hostid>. Elle utilise la proc&eacute;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&eacute; d'une ligne.
				 Toutes les lignes sont imprim&eacute;es les unes sur les
				 autres.</para>
			      
			      <para>C'est le probl&egrave;me &ldquo;inverse&rdquo; de l'effet
				d'escalier d&eacute;crit ci-dessus, et c'est plus rare. Pour
				une raison quelconque, les caract&egrave;res LF que FreeBSD
				emploie en fin de ligne sont compris comme des
				caract&egrave;res CR de retour en d&eacute;but de ligne, sans passage
				&agrave; la ligne.</para>

			      <!-- Need to rewrite this para -->
			      <para>Utilisez les interrupteurs du panneau de 
				 contr&ocirc;le de l'imprimante pour modifier comme suit
				 son interpr&eacute;tation des caract&egrave;res LF et CR.</para>

			    <informaltable>
			      <tgroup cols="2">
				<thead>
				  <row>
				    <entry>L'imprimante re&ccedil;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&egrave;res.</term>
			    
			    <listitem>
			      <para>En cours d'impression, l'imprimante perd
				quelques caract&egrave;res de chaque ligne. Cela peut aller
				de mal en pis, de plus en plus de caract&egrave;res se
				perdent.</para>
			      
			      <para>Le probl&egrave;me tient &agrave; ce que l'imprimante ne
				suit pas le rythme auquel l'ordinateur lui envoie
				des donn&eacute;es sur la ligne s&eacute;rie. (Ce probl&egrave;me ne
				devrait pas se produire avec les imprimantes sur
				des ports parall&egrave;les.) Il y a deux fa&ccedil;ons de
				r&eacute;soudre ce probl&egrave;me:
				<itemizedlist>
				  
				  <listitem>
				    <para>Si l'imprimante g&egrave;re le contr&ocirc;le de flux
				       XON/XOFF, faites en sorte que FreeBSD l'utilise 
				       en positionnant le bit TANDEM de la 
				       fonctionnalit&eacute;
				       <literal>fs</literal>.</para>
				  </listitem>
				  
				  <listitem>
				    <para>Si l'imprimante g&egrave;re le contr&ocirc;le de flux
				      mat&eacute;riel, positionnez le bit MDMBUF de la
				      fonctionnalit&eacute; <literal>fs</literal>. V&eacute;rifiez
				      que le c&acirc;ble qui relie l'imprimante &agrave; 
				      l'ordinateur est bien con&ccedil;u pour transmettre
				      les signaux de contr&ocirc;le de flux (CTS/RTS).</para>
				  </listitem>
				  
				  <listitem>
				    <para>Si l'imprimante ne g&egrave;re aucun protocole de
				      contr&ocirc;le de flux, utilisez la bonne combinaison
				      de bits NLDELAY, TBDELAY, CRDELAY, VTDELAY, et
				      BSDELAY de la fonctionnalit&eacute;
				      <literal>fs</literal> pour introduire les d&eacute;lais
				      appropri&eacute;s dans le flot de donn&eacute;es
				      envoy&eacute; &agrave; l'imprimante.</para>
				  </listitem>
				  
				</itemizedlist>
			      </para>
			    </listitem>
			  </varlistentry>
			  
			  <varlistentry><term>Cela imprime n'importe quoi.</term>
			    
			    <listitem>
			      <para>Ce qui s'imprime ressemble &agrave; tout, sauf au
				texte attendu.</para> 
			      
			      <para>C'est en g&eacute;n&eacute;ral un autre sympt&ocirc;me d'un param&eacute;trage
				incorrect de la communication avec une imprimante s&eacute;rie.
				V&eacute;rifiez la vitesse en bps de la fonctionnalit&eacute; 
				<literal>br</literal>, et les bits de parit&eacute;
				des fonctionnalit&eacute;s <literal>fs</literal> et
				<literal>fc</literal>; assurez-vous que l'imprimante
				utilise les m&ecirc;mes param&egrave;tres que ceux d&eacute;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&egrave;me vient 
				probablement de FreeBSD et non du mat&eacute;riel. Ajoutez
				la fonctionnalit&eacute; de trace 
				(<literal>lf</literal>) &agrave; l'entr&eacute;e associ&eacute;e &agrave; 
				l'imprimante que vous testez, dans le fichier
				<filename>/etc/printcap</filename>. Par exemple,
				voici l'entr&eacute;e pour <literal>rattan</literal>, avec
				la fonctionnalit&eacute; <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&egrave;me au vu de
				ces messages.</para>
			      
			      <para>Si vous n'utilisez pas la fonctionnalit&eacute;
				<literal>lf</literal>, LPD utilise
				<filename>/dev/console</filename> par d&eacute;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&eacute;es pour FreeBSD. Voici un r&eacute;sum&eacute; 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&eacute;crite dans la section <link linkend="printing-lpc">Administrer
                    les imprimantes</link>,
		    qui sert &agrave; g&eacute;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&eacute;ciser &agrave; quelle imprimante/file d'attente, 
		    d&eacute;finie dans le fichier <filename>/etc/printcap</filename>,
		    elle s'applique. Vous pouvez alors soumettre, annuler et
		    consulter l'&eacute;tat de vos travaux sur les diff&eacute;rentes imprimantes.
		    Si vous omettez l'option <option>-P</option>, ces commandes 
		    s'appliquent &agrave; l'imprimante d&eacute;finie par la variable
		    d'environnement <envar>PRINTER</envar>. En dernier ressort, si
		    vous n'avez pas d&eacute;fini la variable d'environnement
		    <envar>PRINTER</envar>, ces commandes s'appliquent par d&eacute;faut &agrave;
		    l'imprimante appel&eacute;e <emphasis remap=tt>lp</emphasis>.</para>
		
		<para>Dans ce qui suit, le terme
		  <emphasis>imprimante par d&eacute;faut</emphasis> d&eacute;signe donc
		  l'imprimante d&eacute;finie par la variable d'environnement 
		  <envar>PRINTER</envar>, ou l'imprimante appel&eacute;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&eacute;s sur
		    l'imprimante par d&eacute;faut. Si vous ne donnez pas de nom de fichier,
		      <citerefentry><refentrytitle>lpr</refentrytitle></citerefentry>
		      lit les donn&eacute;es &agrave; imprimer sur l'entr&eacute;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&egrave;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&eacute;pertoire
		     courant sur l'imprimante appel&eacute;e <literal>rattan</literal>:
		    
		    <informalexample>
		      <screen>&prompt.user; <userinput>ls -l | lpr -P rattan</userinput></screen>
		    </informalexample> Comme on n'a pas donn&eacute; de nom de fichier &agrave; la
		    commande
		    <citerefentry>
		      <refentrytitle>lpr</refentrytitle></citerefentry>,
		    elle lit les donn&eacute;es &agrave; imprimer sur l'entr&eacute;e standard, qui est ici
		    le r&eacute;sultat de la commande <command>ls -l</command>.</para>
		  
		  <para>La commande <citerefentry>
		      <refentrytitle>lpr</refentrytitle></citerefentry> accepte une
		      grande vari&eacute;t&eacute; d'options pour contr&ocirc;ler le format, convertir
		      les fichiers, imprimer plusieurs copies et ainsi de suite. Pour
		      plus d'informations, reportez-vous &agrave; la section
		      <link linkend="printing-lpr-options">Au-del&agrave; du simple texte : options
                      d'impression</link>.</para>
		  
		</sect2>
		
		<sect2
		  id="printing-lpq">
		  <title>Consulter l'&eacute;tat de la file d'attente</title>
		  
		  <para>Quand vous imprimez avec <citerefentry>
		      <refentrytitle>lpr</refentrytitle></citerefentry>, les
		      donn&eacute;es que vous voulez imprimer sont regroup&eacute;es dans un
		    &ldquo;travail d'impression&rdquo;, qui est envoy&eacute; 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&eacute;, premier servi.</para>
		  
		  <para>Pour conna&icirc;tre l'&eacute;tat de la file d'attente de l'imprimante par
		     d&eacute;faut, tapez:
		    <citerefentry>
		      <refentrytitle>lpq</refentrytitle></citerefentry>. Pour une 
		    imprimante particuli&egrave;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&eacute;e
		    <hostid>bamboo</hostid>. Voici un exemple de r&eacute;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 &eacute;t&eacute; affect&eacute; du &ldquo;num&eacute;ro de travail&rdquo; 9. A chaque
		    travail est attribu&eacute; un num&eacute;ro de travail unique. La plupart du 
		    temps, vous n'avez pas besoin de le conna&icirc;tre, sauf si vous voulez
		    annuler l'impression; reportez-vous &agrave; la section
		    <link linkend="printing-lprm">Annuler des impressions</link> pour plus de
		    d&eacute;tails.</para>
		  
		  <para>Le travail num&eacute;ro neuf comporte deux fichiers &agrave; imprimer; 
		    lorsque plusieurs noms de fichiers sont donn&eacute;s en param&egrave;tres de
		    la commande  <citerefentry>
		     <refentrytitle>lpr</refentrytitle></citerefentry>,
		    ils sont trait&eacute;s en un seul travail d'impression. C'est le travail
		    en cours (ce qu'indique la mention <literal>active</literal>
		    dans la colonne &ldquo;Rank&rdquo;), ce qui signifie que 
		    l'imprimante devrait &ecirc;tre en train de l'imprimer.</para>

		  <para>Le deuxi&egrave;me travail est constitu&eacute; par des donn&eacute;es pass&eacute;es 
		    de l'entr&eacute;e standard &agrave; la commande <citerefentry>
		      <refentrytitle>lpr</refentrytitle></citerefentry>.
		    Le troisi&egrave;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&egrave;re ligne du r&eacute;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&eacute;n&egrave;re une sortie
		      d&eacute;taill&eacute;e. Voici un exemple de r&eacute;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 &agrave; 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&ecirc;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&eacute; tout imprim&eacute;.</para>
		  
		  <para>Pour annuler une impression sur l'imprimante par d&eacute;faut,
		    utilisez
		    <citerefentry>
		      <refentrytitle>lpq</refentrytitle></citerefentry> pour conna&icirc;tre
		    le num&eacute;ro du travail. Puis tapez:
		    <informalexample>
		      <screen>&prompt.user; <userinput>lprm <replaceable>num&eacute;ro_du_travail</replaceable></userinput></screen>
		    </informalexample></para>

		  <para>Pour annuler une impression sur une imprimante donn&eacute;e, ajoutez
		    l'option <option>-P</option>. La commande qui suit retire le travail
		    d'impression num&eacute;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&eacute;rents raccourcis:</para>
		  
		    <variablelist>
		      <varlistentry><term>lprm -</term>
			<listitem>
			  <para>Annule tous les travaux (sur l'imprimante par d&eacute;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&eacute;faut) 
			    qui appartiennent &agrave; 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&eacute;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&eacute;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 &agrave; une autre imprimante
		     que l'imprimante par d&eacute;faut. La commande suivante, par exemple,
		     retire tous les travaux de l'utilisateur courant de la file
		     d'attente de l'imprimante appel&eacute;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&eacute;seau, vous
		     ne pourrez annuler de travaux avec
		      <citerefentry>
			<refentrytitle>lprm</refentrytitle></citerefentry>
		      que depuis la machine &agrave; partir de laquelle ils ont &eacute;t&eacute; soumis,
		      m&ecirc;me si l'imprimante concern&eacute;e est accessible depuis d'autres
		      machines. C'est ce qu'illustre la s&eacute;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&agrave; du simple texte: options d'impression</title>
		  
		  <para>La commande <citerefentry>
		      <refentrytitle>lpr</refentrytitle></citerefentry> accepte
		     un certain nombre d'options qui contr&ocirc;lent la mise en page,
                     la conversion des graphiques et d'autres formats de 
                     fichiers, le nombre de copies, et autres. Cette section
                     d&eacute;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&ocirc;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&eacute;
	      <filename>rapport-poissons.dvi</filename> sur l'imprimante appel&eacute;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&eacute;langer des fichiers
	      DVI et ditroff (par exemple). Vous devez les soumettre dans des
              travaux s&eacute;par&eacute;s avec des options de conversion diff&eacute;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&eacute;s pour les imprimantes utilis&eacute;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&eacute;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 (&ldquo;plot&rdquo;).</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&eacute;cisez pas
		      <replaceable>nombre</replaceable>, indente de 8
		      colonnes. Cette option ne s'applique qu'&agrave; 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&egrave;res
		      de contr&ocirc;le.</para>
		  </listitem>
		</varlistentry>
		
		<varlistentry><term><option>-n</option></term>
		  
		  <listitem>
		    <para>Imprime des donn&eacute;es ditroff (troff ind&eacute;pendant du 
	            p&eacute;riph&eacute;rique&nbsp;-&nbsp;&ldquo;device independent troff&rdquo;).</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&ecirc;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&eacute;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&eacute;e des pages de manuel de <citerefentry>
	<refentrytitle>ls</refentrytitle></citerefentry> 
      sur l'imprimante par d&eacute;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&eacute;compresse le source des pages de manuel de <citerefentry>
	<refentrytitle>ls</refentrytitle></citerefentry> et les passe
        &agrave; la commande <citerefentry>
	<refentrytitle>troff</refentrytitle></citerefentry>,
        qui les convertit au format GNU troff et le passe &agrave;
        <citerefentry>
	<refentrytitle>lpr</refentrytitle></citerefentry>,
        qui soumet le travail au gestionnaire d'impression. Comme nous avons
        utilis&eacute; 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&eacute;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 &agrave; LPD les traitements particuliers &agrave; appliquer &agrave; 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&eacute;sactiver cette option pour
              r&eacute;duire l'usure de l'imprimante et encourager l'utilisation
              de la photocopieuse. Reportez-vous &agrave; 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&eacute;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 &eacute;lectronique &agrave; la fin du travail
              d'impression. Avec cette option, LPD vous envoie un
              courrier &eacute;lectronique quand il a fini de traiter votre
              travail d'impression. Son message vous dit si le travail
              s'est normalement d&eacute;roul&eacute; ou s'il y a eu une erreur, et
              (la plupart du temps) quelle &eacute;tait l'erreur.</para>
	  </listitem>
	</varlistentry>
	
	<varlistentry><term>-s</term>
	  
	  <listitem>
	    <para>Ne recopie pas les fichiers dans le r&eacute;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&eacute;pertoire tampon (votre travail pourrait saturer le
              syst&egrave;me de fichiers o&ugrave; se trouve le r&eacute;pertoire tampon). Cela fait
              aussi gagner du temps, car LPD n'a pas besoin de recopier votre
              travail d'impression dans le r&eacute;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 &eacute;t&eacute; imprim&eacute;s.</para>

	    <note>
	      <para>Si vous imprimez sur une imprimante &agrave; 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&eacute;anmoins
                utile.</para>
	    </note>
	  </listitem>
	</varlistentry>
	
	<varlistentry><term>-r</term>
	  
	  <listitem>
	    <para>D&eacute;truit les fichiers apr&egrave;s les avoir copi&eacute;s dans le
              r&eacute;pertoire tampon, ou apr&egrave;s les avoir imprim&eacute;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&ecirc;te</title>
    
    <para>Ces options de <citerefentry>
	<refentrytitle>lpr</refentrytitle></citerefentry>
        influent sur le texte qui est normalement imprim&eacute; sur la page
        d'en-t&ecirc;te du travail d'impression. Si les pages d'en-t&ecirc;te sont
        d&eacute;sactiv&eacute;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&ecirc;te</link>
        pour savoir comment g&eacute;rer les pages d'en-t&ecirc;te.</para>
    
    
      <variablelist>
	<varlistentry><term>-C <replaceable>texte</replaceable></term>
	  <listitem>
	    <para>Remplace le nom de machine sur la page d'en-t&ecirc;te par
	      <replaceable>texte</replaceable>. Le nom de machine est
              normalement celui de la machine d'o&ugrave; le travail a &eacute;t&eacute;
	      soumis.</para>
	  </listitem>
	</varlistentry>
	
	<varlistentry><term>-J <replaceable>texte</replaceable></term>
	  
	  <listitem>
	    <para>Remplace le nom du travail sur la page d'en-t&ecirc;te par
	      <replaceable>texte</replaceable>. Le nom du travail est
	      normalement le nom du premier fichier &agrave; imprimer, ou
	      <filename>stdin</filename> si vous imprimez depuis l'entr&eacute;e
              standard.</para>
	  </listitem>
	</varlistentry>
	
	<varlistentry><term>-h</term>
	  
	  <listitem>
	    <para>N'imprime pas de page d'en-t&ecirc;te.</para>

	    <note>
	      <para>Sur certains sites, cette option n'a pas d'effet, selon
                la fa&ccedil;on dont les pages d'en-t&ecirc;te sont g&eacute;n&eacute;r&eacute;es. Voyez la section
		<link
		linkend="printing-advanced-header-pages">Pages d'en-t&ecirc;te</link>
	        pour plus de d&eacute;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&ucirc; les 
    installer, les configurer et les tester. Avec la commande <citerefentry>
      <refentrytitle>lpc</refentrytitle></citerefentry>,
    vous pouvez encore agir d'autres fa&ccedil;ons sur vos imprimantes. Avec
    <citerefentry>
      <refentrytitle>lpc</refentrytitle></citerefentry>, vous
    pouvez:</para>
  
  <para>
    <itemizedlist>
      
      <listitem>
	<para>D&eacute;marrer et arr&ecirc;ter les imprimantes.</para>
      </listitem>
      
      <listitem>
	<para>Activer et d&eacute;sactiver leurs files d'attente.</para>
      </listitem>
      
      <listitem>
	<para>R&eacute;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&ecirc;t&eacute;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&eacute;marr&eacute;e</emphasis> ou la file d'attente vid&eacute;e.</para>
  
  <para>Si une file d'attente est <emphasis>d&eacute;sactiv&eacute;e</emphasis>, aucun 
    utilisateur (sauf le super-utilisateur) ne peut soumettre de travail &agrave; cette imprimante. Une
    file d'attente <emphasis>active</emphasis> autorise la soumission de 
    travaux d'impression. Une imprimante peut &ecirc;tre <emphasis>d&eacute;marr&eacute;e</emphasis>    
    pour une file d'attente inactive, auquel cas, elle continue &agrave; imprimer les
    travaux jusqu'&agrave; ce que la file d'attente soit vid&eacute;e.</para>
  
  <para>En g&eacute;n&eacute;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'&eacute;tat d'une imprimante et red&eacute;marrer une imprimante qui s'est 
    interrompue.</para>
  
  <para>Voici un r&eacute;sum&eacute; des commandes <citerefentry>
      <refentrytitle>lpc</refentrytitle></citerefentry>.
    La plupart de ces commandes prennent un argument 
      <replaceable>imprimante</replaceable> qui dit &agrave; quelle imprimante
    elles s'appliquent. Vous pouvez utiliser l'argument <literal>all</literal>
    comme <replaceable>imprimante</replaceable> pour qu'elles s'appliquent
    &agrave; toutes les imprimantes list&eacute;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&ecirc;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&eacute;s &agrave; un travail d'impression ne soient pas correctement
            supprim&eacute;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&eacute;
            d'administration. Cette commande recherche les fichiers qui
            n'ont plus lieu d'&ecirc;tre dans le r&eacute;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 &agrave; imprimer les travaux
            qui y sont d&eacute;j&agrave;. Le super-utilisateur (root) peut toujours 
            soumettre des travaux d'impression, m&ecirc;me &agrave; une file d'attente
	    d&eacute;sactiv&eacute;e.</para>
	  
	  <para>Cette commande est utile si vous testez une nouvelle
            imprimante ou un nouveau filtre: d&eacute;sactivez la file
            d'attente et soumettez vos travaux en &eacute;tant super-utilisateur. Les
            autres utilisateurs ne pourront pas soumettre de travaux
            tant que vous n'aurez pas fini vos tests et r&eacute;activ&eacute; 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&ecirc;te compl&egrave;tement une imprimante. C'est l'&eacute;quivalent de
	  <command>disable</command> suivie de 
	  <command>stop</command>. Le <replaceable>message</replaceable> 
            est affich&eacute; quand un utilisateur interroge l'&eacute;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&eacute;s que
            quand l'imprimante aura &eacute;t&eacute; d&eacute;marr&eacute;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&eacute;sum&eacute; des
	    commandes disponibles.</para>
	</listitem>
      </varlistentry>
      
      <varlistentry><term><command>restart
	    <replaceable>imprimante</replaceable></command></term>
	
	<listitem>
	  <para>D&eacute;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&eacute;marrer une imprimante arr&ecirc;t&eacute;e avec la commande
	    <command>stop</command> ou <command>down</command>. 
            La commande <command>restart</command> 
            est l'&eacute;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&eacute;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&ecirc;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&ecirc;me si l'imprimante est arr&ecirc;t&eacute;e, les utilisateurs
            peuvent toujours soumettre des travaux &agrave; 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&eacute;ordonne la file d'attente de 
            l'<replaceable>imprimante</replaceable> en pla&ccedil;ant les
	    <replaceable>travaux</replaceable> dont les num&eacute;ros sont donn&eacute;s
	    ou ceux qui appartiennent &agrave; l'<replaceable>utilisateur</replaceable>
            en t&ecirc;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 &eacute;quivaut &agrave;
	    <command>start</command> suivie de <command>enable</command>.</para>
	</listitem>
      </varlistentry>
    </variablelist>
  
  
  <para><citerefentry>
      <refentrytitle>lpc</refentrytitle></citerefentry> accepte toutes les
      commandes pr&eacute;c&eacute;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'&agrave; ce que vous tapiez
     <command>exit</command>, <command>quit</command>, ou fin_de_fichier.</para>
  
</sect2>
</sect1>

<sect1
id="printing-advanced">
<title>Configuration avanc&eacute;e d'une imprimante</title>

<para>Cette section d&eacute;crit les filtres pour des formatages particuliers,
  les pages d'en-t&ecirc;te, l'impression en r&eacute;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&eacute;seau, la gestion de la
    file d'attente, le contr&ocirc;le d'acc&egrave;s et d'autres aspects des t&acirc;ches 
    d'impression, la plupart du travail <emphasis>effectif</emphasis> est 
    confi&eacute; aux <emphasis>filtres</emphasis>. Les filtres sont des programmes
    qui communiquent avec l'imprimante et se chargent de leurs caract&eacute;ristiques
    et exigences particuli&egrave;res. Lors de la configuration simple, nous avons
    install&eacute; un filtre texte&nbsp;-&nbsp;un filtre tr&egrave;s &eacute;l&eacute;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&eacute;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&egrave;reront ces fonctionnalit&eacute;s. La mauvaise nouvelle est que la
    plupart du temps, <emphasis>vous</emphasis> devrez vous-m&ecirc;me fournir
    ces filtres. La bonne nouvelle est que beaucoup sont d&eacute;j&agrave; disponibles;
    quand ce n'est pas le cas, ils sont en g&eacute;n&eacute;ral faciles &agrave; &eacute;crire.</para>
  
  <para>FreeBSD est aussi livr&eacute; avec un filtre,
    <filename>/usr/libexec/lpr/lpf</filename>, qui fonctionne avec nombre
    d'imprimantes capables d'imprimer du texte. (Il g&egrave;re les retours arri&egrave;re,
    les tabulations et la comptabilit&eacute;, mais c'est &agrave; peu pr&egrave;s tout ce qu'il
    fait.) Il y a aussi plusieurs filtres ou composants de filtres au catalogue
    des logiciels port&eacute;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&ocirc;le du filtre dans le processus d'impression. Vous devriez
          lire cette section pour comprendre ce qui se passe 
	  &ldquo;dans la coulisse&rdquo; quand LPD utilise les filtres. Cela
          peut vous aider &agrave; anticiper et rem&eacute;dier aux probl&egrave;mes que vous
          rencontrerez au fur et &agrave; mesure que vous installerez de plus en
          plus de filtres sur chacune de vos imprimantes.</para>
      </listitem>
	      
	      <listitem>
		<para>LPD s'attend &agrave; ce que, par d&eacute;faut, chaque imprimante soit
                  capable d'imprimer du texte. C'est un probl&egrave;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&eacute;soudre ce probl&egrave;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)
                  &eacute;crivent directement du code PostScript. Mais les imprimantes
                  PostScript sont ch&egrave;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&eacute;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&eacute;thode pour
                  automatiser la conversion de formats de fichiers particuliers,
                  comme des donn&eacute;es graphiques ou issues d'un traitement de
                  texte, vers un format compr&eacute;hensible pour votre imprimante.
                  Apr&egrave;s avoir lu cette section, vous devriez &ecirc;tre capable de
                  configurer vos imprimantes pour que les utilisateurs puissent
                  taper <command>lpr -t</command> pour imprimer des donn&eacute;es 
                  troff, <command>lpr -d</command> pour imprimer des donn&eacute;es 
                  DVI produit par TeX, ou <command>lpr -v</command> 
                  pour imprimer des images point &agrave; 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&eacute; 
		  rarement utilis&eacute;e de LPD: les filtres de sortie. A moins
		  que vous n'imprimiez des pages d'en-t&ecirc;te (voyez la section <link
		    linkend="printing-advanced-header-pages">Pages d'en-t&ecirc;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&eacute;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&eacute; 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&ccedil;oit un retour
                  arri&egrave;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&eacute; plus haut, un filtre est un programme
              ex&eacute;cut&eacute; par LPD pour g&eacute;rer ce qui d&eacute;pend de l'imprimante
              dans la communication avec celle-ci.</para>
	    
	    <para>Quand LPD veut imprimer un fichier appartenant &agrave; un travail
              d'impression, il d&eacute;marre un programme de filtre. Il affecte &agrave;
              l'entr&eacute;e standard du filtre le fichier &agrave; imprimer, &agrave; sa sortie
              standard l'imprimante et &agrave; son fichier d'erreur standard le
              fichier de trace (d&eacute;fini par la fonctionnalit&eacute; 
              <literal>lf</literal> de <filename>/etc/printcap</filename>, ou
	      <filename>/dev/console</filename> par d&eacute;faut).</para>
	    
	    <para>Quel filtre LPD utilise et avec quels arguments d&eacute;pend du
              contenu du fichier <filename>/etc/printcap</filename> et des
	      arguments qu'a donn&eacute;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&eacute;
	      <command>lpr -t</command>, LPD d&eacute;marrera le filtre troff, indiqu&eacute;
	      par la fonctionnalit&eacute; <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&eacute;tails).</para>
	    
	    <para>Il y a trois sortes de filtres que vous pouvez d&eacute;finir dans
	      <filename>/etc/printcap</filename>:</para>
	    
	      <itemizedlist>
		
		<listitem>
		  <para>Le <emphasis>filtre texte</emphasis>, inexactement
		    appel&eacute; <emphasis>filtre d'entr&eacute;e</emphasis> dans la 
                    documentation de LPD, se charge de l'impression du texte
                    ordinaire. Consid&eacute;rez-le comme le filtre par d&eacute;faut. LPD
                    suppose que toutes les imprimantes savent par d&eacute;faut 
                    imprimer du texte, et c'est le r&ocirc;le du filtre texte 
                    de faire en sorte que les retours arri&egrave;re, tabulations
                    et autres caract&egrave;res sp&eacute;ciaux ne posent pas de probl&egrave;mes
                    &agrave; l'imprimante. Si vous &ecirc;tes dans un environnement o&ugrave; 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&eacute; par l'imprimante. Le filtre texte
                    est ex&eacute;cut&eacute; 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&ocirc;te</replaceable></arg>
		      <arg choice="plain"><replaceable>fichier_comptable</replaceable></arg>
		    </cmdsynopsis> o&ugrave;:
		  
		    <variablelist>
		      <varlistentry><term><option>-c</option></term>
			<listitem>
			  <para>est utilis&eacute; si le travail a &eacute;t&eacute; soumis par
			    <command>lpr -l</command>,</para>
			</listitem>
		      </varlistentry>
		      
		      <varlistentry><term><replaceable>largeur</replaceable></term>
			
			<listitem>
			  <para>est la valeur donn&eacute;e avec la fonctionnalit&eacute; 
                          <literal>pw</literal> (largeur de page&nbsp;-&nbsp;&ldquo;page width&rdquo;)
			    dans <filename>/etc/printcap</filename>,
			    132 par d&eacute;faut,</para>
			</listitem>
		      </varlistentry>
		      
		      <varlistentry><term><replaceable>length</replaceable></term>
			
			<listitem>
			  <para>est la valeur indiqu&eacute;e par la fonctionnalit&eacute; 
                          <literal>pl</literal> (hauteur de page&nbsp;-&nbsp;&ldquo;page length&rdquo;), 66 par
			    d&eacute;faut,</para>
			</listitem>
		      </varlistentry>
		      
		      <varlistentry><term><replaceable>indentation</replaceable></term>
			
			<listitem>
			  <para>indentation pr&eacute;cis&eacute;e par
			    <command>lpr -i</command>, 0 par d&eacute;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&ocirc;te</replaceable></term>
			
			<listitem>
			  <para>est le nom de la machine d'o&ugrave; le travail a &eacute;t&eacute;
			    soumis,</para>
			</listitem>
		      </varlistentry>
		      
		      <varlistentry><term><replaceable>fichier_comptable</replaceable></term>
			
			<listitem>
			  <para>est le nom du fichier de comptabilit&eacute; sp&eacute;cif&eacute; 
                            par la fonctionnalit&eacute; <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&eacute;es provenant
                    du traitement de texte ditroff ne peuvent pas &ecirc;tre 
                    imprim&eacute;es directement, mais vous pouvez installer un
                    filtre de conversion pour les fichiers ditroff pour
                    transformer les fichiers ditroff de fa&ccedil;on &agrave; ce que 
                    l'imprimante les dig&egrave;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&eacute;rer la comptabilit&eacute;, si vous en avez besoin.
                    Les filtres de conversion sont ex&eacute;cut&eacute;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&ocirc;te</replaceable></arg>
		      <arg choice="plain"><replaceable>fichier_comptable</replaceable></arg>
		    </cmdsynopsis> o&ugrave; <replaceable>largeur_du_pixel</replaceable> est la valeur 
                    d&eacute;finie par la fonctionnalit&eacute;
		    <literal>px</literal> (0 par d&eacute;faut)
		    et <replaceable>hauteur_du_pixel</replaceable> celle d&eacute;finie
		    par <literal>py</literal> 
		    (0 par d&eacute;faut).</para>
		</listitem>
		
		<listitem>
		  <para>Le <emphasis>filtre de sortie</emphasis> n'est utilis&eacute;
                    que s'il n'y a pas de filtre texte, ou que les pages
                    d'en-t&ecirc;te sont activ&eacute;es. D'apr&egrave;s mon exp&eacute;rience personnelle,
                    les filtres de sortie sont rarement utilis&eacute;s. La section
		    <link linkend="printing-advanced-of">Filtres de sortie</link>
		      les d&eacute;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 
              (&ldquo;exit&rdquo;) avec l'un des codes retour 
              suivants:</para>
	    
	      <variablelist>
		<varlistentry><term>exit 0</term>
		  <listitem>
		    <para>Le filtre a correctement imprim&eacute; 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&eacute; avec la distribution de FreeBSD,
	      <filename>/usr/libexec/lpr/lpf</filename>, utilise les arguments
              d&eacute;finissant la largeur et la hauteur de page pour d&eacute;terminer
              quand envoyer un saut de page et pour g&eacute;rer la comptabilit&eacute;. Il
              se sert du nom d'utilisateur, du nom de machine et de celui du
              fichier comptable pour tenir &agrave; jour les enregistrements
              comptables.</para>
	    
	    <para>Si vous cherchez des filtres, v&eacute;rifiez qu'ils sont 
              compatibles avec LPD. S'ils le sont, ils doivent accepter les
              arguments d&eacute;crits ci-dessus. Si vous envisagez d'&eacute;crire des
              filtres, vous devez faire en sorte qu'ils acceptent ces arguments
              et g&egrave;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 &ecirc;tes le seul utilisateur de votre ordinateur et d'une
              imprimante PostScript (ou d'une autre imprimante fonctionnant 
              avec un langage d'impression) et &ecirc;tes certain de ne jamais envoyer
              de simples fichiers texte &agrave; l'imprimante ou de ne jamais utiliser
              les options de diff&eacute;rents programmes qui feraient de m&ecirc;me, alors
              vous n'avez pas besoin de vous pr&eacute;occuper du contenu de cette
              section.</para>
	    
            <para>Mais, si vous voulez envoyer et du PostScript et de simples
             fichiers texte &agrave; 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&egrave;res au d&eacute;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&eacute;sultat.</para> 
	    
	    <para>Comment r&eacute;aliser cela?</para>
	    
	    <para>Avec une imprimante s&eacute;rie, il suffit d'installer
	      <command>lprps</command>. <command>lprps</command> est un filtre
              d'impression PostScript qui dialogue avec l'imprimante. Il met &agrave;
              jour le fichier d'&eacute;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'&eacute;tat
              de l'imprimante (comme <errorname>manque d'encre</errorname> ou 
              <errorname>bourrage</errorname>). Mais, c'est plus int&eacute;ressant,
              il comporte un programme appel&eacute; <command>psif</command> qui
              d&eacute;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 &agrave; 
              l'imprimante.</para>
	    
	    <para><command>lprps</command> fait partie du catalogue des
	      logiciels port&eacute;s de FreeBSD (voyez le chapitre
               <link linkend="ports">Installer des Logiciels au &ldquo;Catalogue des
               Logiciels Port&eacute;s&rdquo;</link>). Vous
		pouvez le t&eacute;l&eacute;charger, le compiler et 
                l'installer vous-m&ecirc;me, bien s&ucirc;r. Apr&egrave;s avoir install&eacute;
	        <command>lprps</command>, donnez juste le chemin d'acc&egrave;s au
	        programme <command>psif</command> qui fait partie de
	        <command>lprps</command>. Si vous avez install&eacute; 
	        <command>lprps</command> depuis le catalogue des logiciels port&eacute;s,
                utilisez ce qui suit dans la d&eacute;finition de l'imprimante s&eacute;rie
                PostScript dans <filename>/etc/printcap</filename>:</para>
	      
	      <programlisting>
:if=/usr/local/libexec/psif:
	      </programlisting>

	    <para>Vous devez aussi activer la fonctionnalit&eacute;
               <literal>rw</literal> qui dit &agrave; LPD d'ouvrir l'imprimante
	       en lecture/&eacute;criture.</para>
	    
	    <para>Si vous avez une imprimante PostScript parall&egrave;le (et donc
              ne pouvez pas communiquer dans les deux sens avec l'imprimante,
	      ce qui est indispensable &agrave; <command>lprps</command>), vous pouvez
              utilisez la proc&eacute;dure qui suit comme filtre texte:</para>

		<programlisting>
#!/bin/sh
#
#  psif - Imprime du PostScript ou du texte
#  version Proc&eacute;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 &amp;&amp; cat &amp;&amp; printf "\004" &amp;&amp; exit 0
    exit 2
else
    #
    #  Texte simple, le convertir, puis l'imprimer.
    #
    ( echo $first_line; cat ) | /usr/local/bin/textps &amp;&amp; printf "\004" &amp;&amp; exit 0
    exit 2
fi
	      </programlisting>
	    
	    <para>Dans la proc&eacute;dure ci-dessus, <command>textps</command> est un
              programme que nous avons install&eacute; s&eacute;par&eacute;ment pour convertir
              du texte en PostScript. Vous pouvez utiliser le programme de
              conversion de votre choix. Le catalogue des logiciels port&eacute;s de FreeBSD
	      (voyez le chapitre <link linkend="ports">Installer des Logiciels 
              au &ldquo;Catalogue des Logiciels Port&eacute;s&rdquo;</link>)
              comporte un programme complet de conversion de
	      texte en PostScript appel&eacute; <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&eacute;. PostScript
              est, toutefois, un standard <emphasis>co&ucirc;teux</emphasis>.
	      Heureusement, Alladin Enterprises fournit un &eacute;mulateur PostScript 
	      libre, appel&eacute; <application>Ghostscript</application>, qui 
              fonctionne sous FreeBSD. Ghostscript peut lire 
              la plupart des fichiers PostScript
              et les convertir pour divers mod&egrave;les d'imprimantes dont de 
	      nombreuses imprimantes non-PostScript. En installant Ghostscript
              et avec un filtre texte adapt&eacute; &agrave; votre imprimante, vous pouvez
              utiliser votre imprimante comme une vraie imprimante 
	      PostScript.</para>
	    
	    <para>Ghostscript devrait &ecirc;tre dans le catalogue des logiciels port&eacute;s
              de FreeBSD, d'o&ugrave; vous pouvez l'installer. Vous pouvez aussi 
              facilement le t&eacute;l&eacute;charger, le compiler et l'installer.</para>
	    
	    <para>Pour &eacute;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 &agrave; l'imprimante.
               Sinon, il utilisera Ghostscript pour convertir le fichier
	       en un format que l'imprimante comprenne.</para>
	    
	    <para>Voici un exemple: cette proc&eacute;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&eacute;riph&eacute;riques support&eacute;s par la version courante de 
              Ghostscript.)</para>

		<programlisting>
#!/bin/sh
#
#  ifhp - Imprime du PostSCript &eacute;mul&eacute; par Ghostscript sur une DeskJet 500
#  fichier /usr/local/libexec/hpif
#
#  traiter LF comme CR+LF:
#
printf "\033&amp;k2G" || exit 2

#
# Lit les deux premiers caract&egrave;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=- - \
        &amp;&amp; exit 0
else
    #
    #  Texte ou HP/PCL, donc, imprimer directement; envoyer ensuite un saut
    #  de page pour &eacute;jecter la derni&egrave;re page.
    #
    echo $first_line &amp;&amp; cat &amp;&amp; printf "\f" &amp;&amp; exit 0
fi

exit 2
	      </programlisting>

	    <para>Pour finir, il faut sp&eacute;cifier le filtre &agrave; LPD avec
	      la fonctionnalit&eacute; <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&egrave;s avoir termin&eacute; l'&eacute;tape de
              <link linkend="printing-simple">Configuration simple d'une imprimante</link>, la
              premi&egrave;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&eacute;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&eacute;n&eacute;rons un fichier DVI avec TeX, nous ne pouvons
                 l'imprimer directement sans le convertir auparavant en
                 PostScript. La s&eacute;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
                &agrave; chaque fois, en laissant LPD le faire &agrave; notre place. Quand nous aurons
                un fichier DVI, l'impression se fera en une seule &eacute;tape:</para>
	      
		<informalexample>
		  <screen>&prompt.user; <userinput>lpr -d analyse-algues.dvi</userinput></screen>
		</informalexample>

	      <para>L'option <option>-d</option> dit &agrave; LPD que c'est un 
                fichier DVI &agrave; 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&egrave;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&eacute;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&eacute;voyez 
                d'utiliser. Si vous avez beaucoup de donn&eacute;es DVI, un filtre
                de conversion DVI s'impose. Si vous voulez imprimer beaucoup
                de troff, c'est une bonne id&eacute;e d'installer un filtre 
                troff.</para>
	      
	      <para>La table ci-dessous r&eacute;sume les caract&eacute;ristiques des filtres
                que LPD utilise, elle donne le type de fichier,
                la fonctionnalit&eacute; correspondante dans le fichier
		<filename>/etc/printcap</filename> et l'option
                &agrave; utiliser avec la commande <command>lpr</command>.</para>

		<informaltable frame="none">
		  <tgroup cols="3">
		    <thead>
		      <row>
			<entry>Type de fichier</entry>
			<entry>Fonctionnalit&eacute; <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 (&ldquo;plot&rdquo;)</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 &agrave; point (&ldquo;raster&rdquo;)</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&eacute; <literal>df</literal> de sa
		d&eacute;finition dans <filename>/etc/printcap</filename>.</para>
	      
	      <para>Malgr&eacute; ce que d'aucuns en pensent, des formats tels que
                FORTRAN ou &ldquo;traceur&rdquo; sont 
                probablement obsol&egrave;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&eacute;s. Imaginons, par exemple, que vous
                vouliez imprimer directement des fichiers Printerleaf (des
                fichiers cr&eacute;&eacute;s avec le logiciel de Publication Assist&eacute;e par
                Ordinateur Interleaf), mais n'imprimerez jamais de fichier
                traceur. Vous pouvez installer un filtre de conversion
                Printerleaf pour la fonctionnalit&eacute; <literal>gf</literal> et
		pr&eacute;venir vos utilisateur que <command>lpr -g</command>
                signifie &ldquo;imprimer des fichiers 
                Printerleaf.&rdquo;</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&eacute;pertoire
		<filename>/usr/local/libexec</filename> est l'endroit habituel
                o&ugrave; les mettre, parce que ce sont des programmes r&eacute;serv&eacute;s &agrave; LPD
                que les utilisateurs ordinaires ne devraient jamais 
                employer.</para>
	      
	      <para>Pour mettre en service un filtre de conversion, indiquez
                son chemin d'acc&egrave;s &agrave; la fonctionnalit&eacute; correspondante pour
                l'imprimante destinatrice dans
		<filename>/etc/printcap</filename>.</para>
	      
	      <para>Nous allons ajouter &agrave; notre exemple un filtre de conversion
                DVI pour l'imprimante appel&eacute;e <literal>bamboo</literal>. Voici
		notre nouveau fichier <filename>/etc/printcap</filename> avec
		la fonctionnalit&eacute; <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&eacute;dure appel&eacute;e
		<filename>/usr/local/libexec/psdf</filename>. Voici cette
		proc&eacute;dure:</para>

		<programlisting>
#!bin/sh
#
#  psdf - filtre de conversion de DVI en PostScript
#  fichier /usr/local/libexec/psdf
#
# appel&eacute; quand l'utilisateur invoque lpr -d
#
exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"
		</programlisting>

	      <para>Cette proc&eacute;dure ex&eacute;cute <citerefentry>
		  <refentrytitle>dvips</refentrytitle></citerefentry> en mode
              filtre (l'argument <option>-f</option>) sur l'entr&eacute;e standard, 
              qui est le travail d'impression. Elle lance ensuite le filtre
              d'impression PostScript <command>lprps</command> (reportez-vous
              &agrave; la section <link linkend="printing-advanced-if-conversion">Imprimer
	      du texte sur des imprimantes PostScript</link>)
	      en lui passant les arguments donn&eacute;s &agrave; LPD.
		<command>lprps</command> utilisera ces arguments pour
              comptabiliser les pages imprim&eacute;es.</para>
	      
	    </sect4>
	    
	    <sect4>
	      <title>Autres exemples de filtres de conversion</title>
	      
	      <para>La m&eacute;thode pour installer des filtres de conversion n'&eacute;tant
                 pas toujours la m&ecirc;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&eacute;dure pour convertir des fichiers graphiques point &agrave; 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 \
    &amp;&amp; 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
                &ldquo;bitmap&rdquo; et enfin en donn&eacute;es compatibles
		LaserJet/PCL.</para>
	      
	      <para>Voici le fichier <filename>/etc/printcap</filename> avec
		une entr&eacute;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&eacute;dure suivante convertit des donn&eacute;es troff produites                 
                par le traitement de texte groff pour l'imprimante PostScript
		<literal>bamboo</literal>:</para>

		<programlisting>
#!/bin/sh
#
#  pstf - Convertit des donn&eacute;es troff de groff en PS, et les imprime
#  fichier /usr/local/libexec/pstf
#
exec grops | /usr/local/libexec/lprps "$@"
		</programlisting>
	      
	      <para>Cette proc&eacute;dure utilise de nouveau <command>lprps</command> 
                 pour communiquer avec l'imprimante. Si l'imprimante &eacute;tait sur
                 un port parall&egrave;le, il faudrait utiliser une autre 
                 m&eacute;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&amp;k2G" &amp;&amp; fpr &amp;&amp; printf "\f" &amp;&amp; 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&eacute;c&eacute;dent. Commen&ccedil;ons
		par le plus facile: mettre &agrave; jour 
                <filename>/etc/printcap</filename> en lui donnant le chemin
		d'acc&egrave;s au filtre DVI:</para>
	      
		<programlisting>
:df=/usr/local/libexec/hpdf:
		</programlisting>
	      
	      <para>Et maintenant, la partie compliqu&eacute;e: cr&eacute;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&eacute;s de FreeBSD (voyez le chapitre <link linkend="ports">Installer 
                des Logiciels au &ldquo;Catalogue des Logiciels Port&eacute;s&rdquo;</link>):
		  <citerefentry>
		  <refentrytitle>dvi2xx</refentrytitle></citerefentry> est le
		nom du logiciel. En l'installant, nous r&eacute;cup&eacute;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&eacute;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 &agrave; l'entr&eacute;e
                standard. Nous contournons le probl&egrave;me avec un lien
		(symbolique) d'un fichier temporaire (avec l'extension
		<filename>.dvi</filename>) vers <filename>/dev/fd/0</filename>,
		for&ccedil;ant ainsi  <citerefentry>
		  <refentrytitle>dvilj2p</refentrytitle></citerefentry> &agrave; lire
                l'entr&eacute;e standard.</para>
	      
	      <para>Il y a cependant une mouche dans le potage. Nous ne pouvons
                pas cr&eacute;er de lien symbolique temporaire dans    
                <filename>/tmp</filename>. Les liens symboliques appartiennent
                &agrave; l'utilisateur et au groupe <username>bin</username>. 
                Le filtre est ex&eacute;cut&eacute; par l'utilisateur 
                <username>daemon</username>. Et le bit &ldquo;sticky (persistant)&rdquo;
		du r&eacute;pertoire <filename>/tmp</filename> est positionn&eacute;. Le
                filtre peut cr&eacute;er le lien, mais ne pourra pas le d&eacute;truire
                apr&egrave;s avoir fait son travail, puisque le lien appartient
                &agrave; un autre utilisateur.</para>
	      
	      <para>Le filtre cr&eacute;era donc le lien dans le r&eacute;pertoire courant,
                qui est le r&eacute;pertoire tampon pour la file d'attente des
                travaux d'impression
		(d&eacute;fini par la fonctionnalit&eacute; <literal>sd</literal> dans
		<filename>/etc/printcap</filename>). C'est l'endroit id&eacute;al
                pour que les filtres accomplissent leur t&acirc;che, en particulier
                parce qu'il y a (parfois) plus de place dans le r&eacute;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&eacute;finit une fonction pour d&eacute;truire nos fichiers temporaires. Ces fichiers
#  sont dans le r&eacute;pertoire courant, qui est le r&eacute;pertoire de file d'attente de
#  l'imprimante
#
cleanup() {
   rm -f hpdf$$.dvi
}

#
#  D&eacute;finit une fonction de gestion des erreurs fatales : imprime le message
#  d'erreur et retourne le code d'erreur 2. Ce code dit &agrave; LPD de ne pas
#  relancer le travail d'impression.
#
fatal() {
    echo "$@" 1&gt;&amp;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&eacute;nage nous-m&ecirc;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&eacute;e standard (fichier &agrave; imprimer).
#
ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0"

#
#  LF = CR+LF
#
printf "\033&amp;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&eacute;nage et termine la proc&eacute;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&eacute;liorent votre
                environnement d'impression, mais ils obligent l'utilisateur
		&agrave; pr&eacute;ciser (sur la ligne de commande de  <citerefentry>
		  <refentrytitle>lpr</refentrytitle></citerefentry>)
		lequel utiliser. Si vos utilisateurs ne sont pas 
                particuli&egrave;rement comp&eacute;tents en informatique, cela leur sera
                une g&ecirc;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&eacute;faut) reconnaisse le type de fichier qu'il doit
                imprimer et ex&eacute;cute automatiquement le filtre de conversion
                ad&eacute;quat. Des utilitaires comme <command>file</command> peuvent
                &ecirc;tre employ&eacute;s pour cela. Il sera bien s&ucirc;r difficile de faire
                la diff&eacute;rence entre <emphasis>certains</emphasis> types de 
                fichiers&nbsp;-&nbsp;dans ce cas, vous pouvez toujours fournir des
		filtres de conversion juste pour ces fichiers.</para>
	      
	      <para>Le catalogue des logiciels port&eacute;s de FreeBSD inclut un
		filtre texte appel&eacute;  <citerefentry>
		  <refentrytitle>apsfilter</refentrytitle></citerefentry>
                qui effectue la conversion automatique. Il sait reconna&icirc;tre les
                fichiers texte, PostScript et DVI, effectuer la 
                conversion ad&eacute;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&eacute;: le filtre
              de sortie. Un filtre de sortie sert &agrave; imprimer du texte 
              uniquement, comme le filtre texte, mais il est grandement
              simplifi&eacute;. Si vous utilisez un filtre de sortie, et pas de
	      filtre texte, alors:
	      <itemizedlist>
		
		<listitem>
		  <para>LPD ex&eacute;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&egrave;te pas de d&eacute;tecter le d&eacute;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 &ecirc;tre utilis&eacute;
                    pour la comptabilit&eacute;. 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&ugrave; <replaceable>largeur</replaceable> est
                      la valeur d&eacute;finie par la fonctionnalit&eacute;
		    <literal>pw</literal> et
		    <replaceable>hauteur</replaceable> est
                      la valeur d&eacute;finie par la fonctionnalit&eacute;
                    <literal>pl</literal> associ&eacute;e &agrave; l'imprimante en
		    question.</para>
		</listitem>
		
	      </itemizedlist>
	    </para>
	    
	    <para>Ne soyez pas abus&eacute; par la simplicit&eacute; 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&eacute; aussi filtre d'entr&eacute;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&eacute;es pour voir s'il contient
                des caract&egrave;res sp&eacute;ciaux et s'envoyer des signaux &agrave; lui-m&ecirc;me
                au lieu que ce soit LPD qui le fasse.</para>
	    
	    <para>Un filtre de sortie est toutefois
              <emphasis>n&eacute;cessaire</emphasis> si vous voulez avoir des pages
              d'en-t&ecirc;te et devez envoyer des s&eacute;quences d'&eacute;chappement ou d'autres
              commandes d'initialisation pour pouvoir imprimer ces pages
              d'en-t&ecirc;te. (Il est cependant <emphasis>inutilisable</emphasis> si vous
              voulez facturer ces pages d'en-t&ecirc;te &agrave; l'utilisateur,
              puisque LPD ne donne pas d'informations sur l'utilisateur et
              la machine au filtre de sortie.)</para>
	    
	    <para>Pour une m&ecirc;me imprimante, LPD vous autorise &agrave; avoir &agrave; 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&ecirc;te (voyez la section <link
		linkend="printing-advanced-header-pages">Pages d'en-t&ecirc;te</link>)
		uniquement. LPD s'attend &agrave; ce que le filtre de sortie
	      <emphasis>s'interrompe ensuite lui-m&ecirc;me</emphasis> quand il lui envoie les 
              deux octets: ASCII 031 suivi de ASCII 001. Quand un filtre de
              sortie re&ccedil;oit cette s&eacute;quence (031, 001), il doit s'interrompre en
	      s'envoyant le signal SIGSTOP. Quand LPD en a fini avec les autres
              filtres, il r&eacute;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&eacute;j&agrave; 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&eacute;
              auparavant comme filtre texte, peut aussi &ecirc;tre utilis&eacute; comme
              filtre de sortie. Si vous avez besoin d'un filtre de sortie
              grossier et ne voulez pas &eacute;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&eacute;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&eacute;e) qui sait indenter le r&eacute;sultat
	      (commande <command>lpr -i</command>), imprimer litt&eacute;ralement le
	      texte (commande <command>lpr -l</command>), se positionner
              &agrave; la bonne colonne d'impression pour g&eacute;rer les retours arri&egrave;re
              et les tabulations et comptabiliser les pages imprim&eacute;es. Il peut
              aussi servir de filtre de sortie.</para>
	    
	    <para><command>lpf</command> convient &agrave; de nombreux environnements
              d'impression. Et bien qu'il ne sache pas envoyer de s&eacute;quences
              d'initialisation &agrave; l'imprimante, il est facile d'&eacute;crire une
              proc&eacute;dure qui effectue les initialisations requises et ex&eacute;cute
              ensuite <command>lpf</command>.</para>
	    
	    <para>Pour que <command>lpf</command> comptabilise correctement les
              pages, il faut que les valeurs d&eacute;finies par les fonctionnalit&eacute;s
	      <literal>pw</literal> et <literal>pl</literal> du fichier
	      <filename>/etc/printcap</filename> soient correctement 
              renseign&eacute;es. Ces valeurs sont utilis&eacute;es pour savoir quelle 
              quantit&eacute; 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&ecirc;te</title>
         
          <para>Si vous avez <emphasis>beaucoup</emphasis> d'utilisateurs,
            employant tous diff&eacute;rentes imprimantes, alors vous devrez
            envisager les <emphasis>pages d'en-t&ecirc;te</emphasis> comme un
            mal n&eacute;cessaire.</para>
          
          <para>Les pages d'en-t&ecirc;te, appel&eacute;es aussi 
            <emphasis>banni&egrave;res</emphasis> ou
            pages qui sautent aux yeux (<emphasis>burst</emphasis>) 
            identifient les propri&eacute;taires des
            travaux apr&egrave;s qu'ils aient &eacute;t&eacute; imprim&eacute;s. Elles sont g&eacute;n&eacute;ralement
            imprim&eacute;es en gros caract&egrave;res gras, parfois encadr&eacute;s, de fa&ccedil;on &agrave;
            ce qu'elles se distinguent facilement des documents eux-m&ecirc;mes
            dans une pile d'impressions. Elles permettent aux utilisateurs
            de r&eacute;p&eacute;rer rapidement leurs propres travaux. L'inconv&eacute;nient en est
            que cela fait une page suppl&eacute;mentaire &agrave; imprimer &agrave; chaque fois,
            d'usage &eacute;ph&eacute;m&egrave;re&nbsp;-&nbsp;quelques minutes au plus, et qui finissent
            &agrave; la corbeille ou au recyclage. (Notez que comme il n'y a qu'une
            page d'en-t&ecirc;te par travail d'impression et non une pour chaque
            fichier, le gaspillage n'est peut-&ecirc;tre pas si grave.)</para>
          
          <para>Le syst&egrave;me LPD peut g&eacute;n&eacute;rer automatiquement les pages d'en-t&ecirc;te
            si votre imprimante sait imprimer directement du texte. Si vous
            avez une imprimante PostScript, il vous faudra un programme  
            suppl&eacute;mentaire pour les g&eacute;n&eacute;rer; reportez-vous &agrave; la section
            <link linkend="printing-advanced-header-pages-ps">Pages
            d'en-t&ecirc;te sur les imprimantes PostScript</link>.</para>
          
          <sect3 id="printing-advanced-header-pages-enabling">
            <title>Activer les pages d'en-t&ecirc;te</title>
            
            <para>Dans la <link linkend="printing-simple">Configuration
              simple d'une imprimante</link>, nous avons supprim&eacute; l'impression
              des pages d'en-t&ecirc;te en ajoutant
              <literal>sh</literal> (pour &ldquo;suppress
              header&rdquo;&nbsp;-&nbsp;supprimer les en-t&ecirc;tes) dans le fichier 
              <filename>/etc/printcap</filename>. Pour les mettre en service
              sur une imprimante, il suffit d'enlever la fonctionnalit&eacute;
              <literal>sh</literal>.</para>
	    
	    <para>Cela parait trop facile, non?</para>
	    
	    <para>Vous avez raison. Vous devrez <emphasis>peut-&ecirc;tre</emphasis>
              fournir un filtre de sortie pour envoyer une s&eacute;quence 
              d'initialisation &agrave; 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&amp;k2G" || exit 2 exec
/usr/libexec/lpr/lpf
	      </programlisting>
	    
	    <para>Donnez le chemin d'acc&egrave;s du filtre de sortie avec la
              fonctionnalit&eacute;
	      <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&eacute;j&agrave; utilis&eacute;e plus haut; nous
              mettons en service les pages d'en-t&ecirc;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&ecirc;te
              pour chaque travail. S'ils pr&eacute;f&eacute;rent perdre du temps &agrave;
              retrouver leurs impressions, ils peuvent supprimer les
              pages d'en-t&ecirc;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&ecirc;te</link> pour conna&icirc;tre les autres options 
                de <citerefentry>
		<refentrytitle>lpr</refentrytitle></citerefentry>.</para>

	    <note>
	      <para>LPD imprime un caract&egrave;re de saut de page apr&egrave;s chaque page
                d'en-t&ecirc;te. Si votre imprimante utilise un caract&egrave;re ou une
                s&eacute;quence diff&eacute;rente pour &eacute;jecter une page, pr&eacute;cisez-la avec
                la fonctionnalit&eacute; <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&ecirc;te</title>
	    
	    <para>Si les pages d'en-t&ecirc;te sont actives, LPD produira un
              <emphasis>en-t&ecirc;te long</emphasis>, une page enti&egrave;re en 
              gros caract&egrave;res, donnant le nom de l'utilisateur, de la
              machine et du travail d'impression. En voici un exemple
	      (kelly a imprim&eacute; un travail appel&eacute; 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&egrave;s ce texte de sorte que le
              travail commence en d&eacute;but de page (&agrave; moins que vous n'ayez mis
	      <literal>sf</literal>&nbsp;-&nbsp;supprimer les sauts de 
              page&nbsp;-&nbsp;dans l'entr&eacute;e
              correspondant &agrave; l'imprimante destinatrice dans
	      <filename>/etc/printcap</filename>).</para>
	    
	    <para>Si vous le pr&eacute;f&eacute;rez, LPD peut g&eacute;n&eacute;rer des <emphasis>en-t&ecirc;tes
		courts</emphasis>; sp&eacute;cifiez <literal>sb</literal>
	      (en-t&ecirc;te court&nbsp;-&nbsp;&ldquo;short banner&rdquo;) dans le
              fichier <filename>/etc/printcap</filename>.
	      La page d'en-t&ecirc;te ressemblera alors &agrave; ceci:</para>
	    
	      <programlisting>
rose:kelly  Job: outline  Date: Sun Sep 17 11:07:51 1995
	      </programlisting>

	    <para>Par d&eacute;faut, LPD imprime la page d'en-t&ecirc;te avant le contenu
              du travail. Vous pouvez faire l'inverse avec 
	      <literal>hl</literal> (en-t&ecirc;te &agrave; la fin&nbsp;-&nbsp;&ldquo;header 
              last&rdquo;) dans
	      <filename>/etc/printcap</filename>.</para>
	    
	  </sect3>
	  
	  <sect3 id="printing-advanced-header-pages-accounting">
	    <title>Comptabiliser les pages d'en-t&ecirc;te</title>
	    
	    <para>Avec les pages d'en-t&ecirc;te pr&eacute;-programm&eacute;es de LPD, vous
              en &ecirc;tes r&eacute;duits &agrave; appliquer la politique suivante: les pages
              d'en-t&ecirc;te doivent &ecirc;tre <emphasis>gratuites</emphasis>.</para>
	    
	    <para>Pourquoi?</para>
	    
	    <para>Le filtre de sortie est le seul programme additionnel
              qui puisse savoir quand sont imprim&eacute;es les pages d'en-t&ecirc;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 &ldquo;ajouter une page&rdquo; par l'interm&eacute;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&ecirc;te avec
	      <command>lpr -h</command>. Ils seraient alors factur&eacute;s pour des
              pages d'en-t&ecirc;te qu'ils n'ont pas imprim&eacute;es. Les utilisateurs
              &eacute;cologistes pr&eacute;f&eacute;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&eacute;n&eacute;rer les pages d'en-t&ecirc;te par les diff&eacute;rents filtres (ce
              qui permet de les facturer). Si les utilisateurs veulent
              alors les supprimer avec <command>lpr -h</command>, ils
              les auront malgr&eacute; tout et seront factur&eacute;s pour, parce que LPD
	      ne passe l'information fournie par l'option 
              <option>-h</option> &agrave; 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&ecirc;te.</para>
		</listitem>
		
		<listitem>
		  <para>Installer l'une des alternatives &agrave; 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 &agrave; LPD.</para>
		</listitem>
		
		<listitem>
		  <para>Ecrire un filtre de sortie 
                    <emphasis>intelligent</emphasis>. Le filtre de sortie
                    n'a normalement rien d'autre &agrave; faire que d'initialiser
                    l'imprimante et effectuer quelques conversions simples
                    de caract&egrave;res. Il convient pour les pages d'en-t&ecirc;te et
                    l'impression de textes (quand il n'y a pas de filtre
                    texte&nbsp;-&nbsp;ou d'entr&eacute;e). Mais, s'il y a un filtre 
                    texte, le filtre de sortie n'est utilis&eacute; que pour les
                    pages d'en-t&ecirc;te. Le filtre de sortie peut alors
                    d&eacute;terminer quel utilisateur ou quelle machine facturer
                    en fonction du contenu de la page d'en-t&ecirc;te. Le seul
                    probl&egrave;me avec cette m&eacute;thode est que l'on ne sait toujours
                    pas quel est le fichier comptable (son nom, d&eacute;fini par
                    la fonctionnalit&eacute; <literal>af</literal>, n'est pas
                    transmis au filtre de sortie), mais si son nom est
                    standard, vous pouvez le codez &ldquo;en dur&rdquo;
                    dans le filtre de sortie. Pour faciliter l'analyse du
                    contenu de la page d'en-t&ecirc;te, utilisez la fonctionnalit&eacute;
		    <literal>sh</literal> (en-t&ecirc;te courte) dans
		    <filename>/etc/printcap</filename>. Cependant, 
                    c'est peut-&ecirc;tre se donner beaucoup de mal, alors que
                    les utilisateurs appr&eacute;cieront certainement plus 
                    l'administrateur syst&egrave;me qui leur fait cadeau des
                    pages d'en-t&ecirc;te.</para>
		</listitem>
		
	      </itemizedlist>
	    </para>
	    
	  </sect3>
	  
	  <sect3
	    id="printing-advanced-header-pages-ps">
	    <title>Pages d'en-t&ecirc;te sur les imprimantes PostScript</title>
	    
	    <para>Comme d&eacute;crit ci-dessus, LPD peut g&eacute;n&eacute;rer une page
              d'en-t&ecirc;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&ecirc;te de LPD sont 
              inutilisables&nbsp;-&nbsp;ou presque.</para>
	    
	    <para>Une m&eacute;thode triviale pour obtenir des pages d'en-t&ecirc;te est
              de confier leur g&eacute;n&eacute;ration &agrave; 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&ecirc;te.
              L'inconv&eacute;nient de cette m&eacute;thode est que les utilisateurs
              auront toujours une page d'en-t&ecirc;te, m&ecirc;me s'ils soumettent
              leurs travaux avec <command>lpr -h</command>.</para>
	    
	    <para>Voyons comment cela fonctionne. La proc&eacute;dure ci-dessous a 
              trois arguments (le nom de l'utilisateur, celui de la machine et
              celui du travail d'impression) et g&eacute;n&egrave;re une page d'en-t&ecirc;te
	      PostScript simple:</para>

	      <programlisting>
#!/bin/sh
#
#  make-ps-header - affiche une page d'en-t&ecirc;te PostScript sur la sortie standard
#  fichier /usr/local/libexec/make-ps-header
#

#
#  Ce sont les unit&eacute;s PostScript (72 par pouce).  
#  A modifier pour le format A4 ou autre.
#
page_width=612
page_height=792
border=72

#
#  contr&ocirc;le des arguments  
#
if [ $# -ne 3 ]; then
    echo "Usage: `basename $0` &lt;user&gt; &lt;host&gt; &lt;job&gt;" 1&gt;&amp;2
    exit 1
fi

#
#  Les m&eacute;moriser, pour la lisibilit&eacute; du code PostScript qui suit.
#
user=$1
host=$2
job=$3
date=`date`

#
#  Envoyer le code PostScript sur la sortie standard.
#
exec cat &lt;&lt;EOF
%!PS

%
%  Pour ne pas interf&eacute;rer avec le travail de l'utilisateur qui suivra.
%
save

%
%  Un cadre large et d&eacute;sagr&eacute;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&egrave;res.
%
/Helvetica-Bold findfont 64 scalefont setfont
$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto
($user) show

%
%  Les caract&eacute;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&eacute;dure pour produire les pages
              d'en-t&ecirc;te avant d'imprimer le travail de l'utilisateur. Voici
              le filtre de conversion DVI d&eacute;crit plus haut dans ce chapitre,
              modifi&eacute; pour inclure la g&eacute;n&eacute;ration des pages d'en-t&ecirc;te:</para> 

	      <programlisting>
#!/bin/sh
#
#  psdf - filtre de conversion de DVI en PostScript
#  fichier /usr/local/libexec/psdf
#
#  Utilis&eacute; par lpd quand l'utilisateur emploie lpr -d
#
		
orig_args="$@"

fail() {
    echo "$@" 1&gt;&amp;2
    exit 2
}

while getopts "x:y:n:h:" option; do
    case $option in
        x|y)  ;; # Ignore
        n)    login=$OPTARG ;;
        h)    host=$OPTARG ;;
        *)    echo "LPD started `basename $0` wrong." 1&gt;&amp;2
              exit 2
              ;;
    esac
done

[ "$login" ] || fail "Pas de nom d'utilisateur"
[ "$host" ] || fail "Pas de nom de machine"

( /usr/local/libexec/make-ps-header $login $host "DVI File"
  /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args
	      </programlisting>

	    <para>Remarquez la fa&ccedil;on dont le filtre analyse les arguments
              pour conna&icirc;tre le nom de l'utilisateur et celui de la machine.
              Ce serait la m&ecirc;me pour les autres filtres de conversion. Le
              filtre texte a un jeu d'arguments l&eacute;g&egrave;rement diff&eacute;rent (voyez
	      la section <link linkend="printing-advanced-filters">Comment
	      fonctionnent les filtres</link>).</para>
	    
	    <para>Comme nous l'avons d&eacute;j&agrave; dit, cette m&eacute;thode, quoique assez
              simple, emp&ecirc;che d'utiliser l'option de
	       &ldquo;suppression de la page d'en-t&ecirc;te&rdquo; (l'option
	      <option>-h</option>) de la commande <command>lpr</command>. Si
              les utilisateurs voulaient &eacute;pargner un arbre (ou quelques
              centimes, si vous facturez les pages d'en-t&ecirc;te), ils ne pourront
              pas, puisque tous les filtres imprimeront une page d'en-t&ecirc;te
              pour chaque travail.</para>
	    
	    <para>Pour permettre aux utilisateurs de d&eacute;sactiver les pages
              d'en-t&ecirc;te, vous devrez utiliser l'astuce d&eacute;crite &agrave; la section
	      <link 
              linkend="printing-advanced-header-pages-accounting">Comptabiliser
	      les pages d'en-t&ecirc;te</link>: &eacute;crire un filtre de
              sortie qui analyse la page d'en-t&ecirc;te g&eacute;n&eacute;r&eacute;e par LPD et en
              produire une version PostScript. Si l'utilisateur soumet son
              travail avec <command>lpr -h</command>, LPD ne g&eacute;n&egrave;re pas
              de page d'en-t&ecirc;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&ecirc;te &agrave; l'imprimante.</para>
	    
	    <para>Si votre imprimante PostScript est sur une interface
              s&eacute;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&ecirc;te.</para>
	    
	  </sect3>
	</sect2>
	
	<sect2
	  id="printing-advanced-network-printers">
	  <title>Impression en r&eacute;seau</title>
	  
        <para>FreeBSD supporte l'impression en r&eacute;seau pour envoyer des travaux
            sur des imprimantes distantes. Imprimer en r&eacute;seau veut en g&eacute;n&eacute;ral
            dire deux choses diff&eacute;rentes:
	    <itemizedlist>
	      
	      <listitem>
		<para>Acc&eacute;der &agrave; une imprimante connect&eacute;e &agrave; une machine distante.
                  Vous installez une imprimante avec une interface s&eacute;rie ou
                  parall&egrave;le classique sur une machine. Vous pouvez alors
                  configurer LPD pour permettre l'acc&egrave;s &agrave; cette imprimante
                  depuis d'autres machines du r&eacute;seau. La section <link
		    linkend="printing-advanced-network-rm">Imprimantes 
                    install&eacute;es sur des machines distantes</link>
		    vous explique comment
                    faire.</para>
	      </listitem>
	      
	      <listitem>
		<para>Acc&eacute;der &agrave; une imprimante connect&eacute;e directement au r&eacute;seau.
                  L'imprimante a une interface r&eacute;seau en plus (ou &agrave; la place)
                  de l'interface s&eacute;rie ou parall&egrave;le habituelle. Une imprimante
                  de ce type peut fonctionner comme suit:
		  
		  <itemizedlist>
		    
		    <listitem>
		      <para>Elle peut comprendre le protocole LPD, voire m&ecirc;me
                        g&eacute;rer une file d'attente de travaux venant de machines
                        distantes. Dans ce cas, elle se comporte comme une
                        machine distante ex&eacute;cutant LPD. Suivez la m&ecirc;me proc&eacute;dure
			qu'&agrave; la section <link
			  linkend="printing-advanced-network-rm">Imprimantes
			  install&eacute;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&eacute;es
                        venant du r&eacute;seau. Dans ce cas, 
                        vous la &ldquo;reliez&rdquo; &agrave; une machine du r&eacute;seau
                        en confiant &agrave; cette machine la gestion de la file
                        d'attente et l'envoi des travaux &agrave; l'imprimante. La
			section <link
			  linkend="printing-advanced-network-net-if">Imprimantes
	  		avec une interface r&eacute;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&eacute;es sur des machines distantes</title>
	    
	    <para>Le syst&egrave;me LPD inclut ce qu'il faut pour envoyer des
              travaux sur d'autres machines qui ex&eacute;cutent aussi LPD (ou
              sont compatibles avec). Cela vous permet d'installer une
              imprimante sur une machine et de la rendre accessible &agrave;
              d'autres machines. Cela marche aussi avec les imprimantes
              qui ont une interface r&eacute;seau qui comprend le protocole
              LPD.</para>
	    
	    <para>Pour utiliser ce type d'impression en r&eacute;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&eacute;cessaires de la
	      <link linkend="printing-advanced">Configuration avanc&eacute;e
              d'une imprimante</link>. Veillez &agrave; 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&eacute;seau
              compatible avec LPD, alors la <emphasis>machine 
              d'impression</emphasis> dont nous parlerons ci-dessous est
              l'imprimante elle-m&ecirc;me, et le <emphasis>nom de 
              l'imprimante</emphasis> est le nom que vous avez utilis&eacute; pour
              configurer votre imprimante. Consultez la documentation de
              votre imprimante ou de son interface r&eacute;seau.</para>
	    
	    <para>Ensuite, sur les autres machines depuis lesquelles vous voulez
              pouvoir acc&eacute;der &agrave; cette imprimante, ajouter une entr&eacute;e dans leurs
              fichiers <filename>/etc/printcap</filename> de la fa&ccedil;on suivante:
	      <orderedlist>
		
		<listitem>
		  <para>Nommez cette entr&eacute;e comme vous voulez. Pour plus de
                    simplicit&eacute;, vous utiliserez &eacute;ventuellement le m&ecirc;me nom
                    et les m&ecirc;mes alias que sur la machine d'impression.</para>
		</listitem>
		
		<listitem>
		  <para>Laissez explicitement la fonctionnalit&eacute;
                    <literal>lp</literal> non renseign&eacute;e
		    (<literal>:lp=:</literal>).</para>
		</listitem>
		
		<listitem>
		  <para>Cr&eacute;ez un r&eacute;pertoire tampon et donnez son chemin d'acc&egrave;s
                    avec la fonctionnalit&eacute; <literal>sd</literal>. LPD y
                    mettra les travaux avant de les envoyer &agrave; la machine
		    d'impression.</para>
		</listitem>
		
		<listitem>
		  <para>Donnez le nom de l'imprimante avec la fonctionnalit&eacute;
                    <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&eacute;
                    <literal>rp</literal>.</para>
		</listitem>
		
	      </orderedlist>C'est tout. Vous n'avez pas besoin de pr&eacute;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&ecirc;te</link>). Il contenait d&eacute;j&agrave; une entr&eacute;e
              pour l'imprimante <literal>teak</literal>; nous avons ajout&eacute;
              les entr&eacute;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&eacute;e directement &agrave; orchid:
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
        :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
        :if=/usr/local/libexec/ifhp:\
        :vf=/usr/local/libexec/vfhp:\
        :of=/usr/local/libexec/ofhp:

#
#  rattan est connect&eacute;e &agrave; rose; envoyer les travaux pour rattan &agrave; rose:
#
rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\
        :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:

#
#  bamboo est aussi connect&eacute;e &agrave; rose:
#
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
        :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:
	      </programlisting>

	    <para>Nous n'avons plus qu'&agrave; cr&eacute;er les r&eacute;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&egrave;me LPD d'orchid copiera le travail dans
              le r&eacute;pertoire tampon
	      <filename>/var/spool/lpd/bamboo</filename> et notera que c'est
	      un travail DVI. D&egrave;s qu'il y aura de la place dans le r&eacute;pertoire
              tampon pour <hostid>bamboo</hostid> sur la machine rose, les deux
              LPD transf&egrave;reront le fichier sur rose. Il attendra d'&ecirc;tre imprim&eacute;
              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&eacute;seau</title>
	    
	    <para>La plupart du temps, quand vous achetez une carte d'interface
              r&eacute;seau pour une imprimante, vous avez le choix entre deux 
              versions: l'une (la plus ch&egrave;re) &eacute;mule un gestionnaire 
              d'impression, l'autre (la moins ch&egrave;re) ne vous permet que de lui
              envoyer des donn&eacute;es comme si elle &eacute;tait sur un port parall&egrave;le ou
              s&eacute;rie. C'est l'utilisation de cette derni&egrave;re que d&eacute;crit la
              pr&eacute;sente section. Pour la version la plus ch&egrave;re, voyez la
              section pr&eacute;c&eacute;dente, <link
		linkend="printing-advanced-network-rm">Imprimantes install&eacute;es
		sur des machines distantes</link>.</para>
	    
	    <para>Le format du fichier <filename>/etc/printcap</filename>
               vous permet d'indiquer quelle interface s&eacute;rie ou parall&egrave;le
              utiliser, et (si vous utilisez une interface s&eacute;rie), quelle
              est la vitesse en baud, s'il faut utiliser un contr&ocirc;le de 
              flux, les d&eacute;lais pour les tabulations, la conversion des
              sauts de ligne, et ainsi de suite. Mais il n'y a rien pour
              d&eacute;crire la connexion d'une imprimante qui &eacute;coute sur un port
              TCP/IP ou un autre port r&eacute;seau.</para>
	    
	    <para>Pour envoyer des donn&eacute;es &agrave; une imprimante r&eacute;seau, il vous
              faut un programme de communication qui soit appel&eacute; par le
              filtre texte et les filtres de conversion. En voici une
              exemple: la proc&eacute;dure <command>netprint</command> r&eacute;cup&egrave;re
              toutes les donn&eacute;es qui arrivent sur l'entr&eacute;e standard et
              les envoie &agrave; une imprimante r&eacute;seau. Nous donnons comme
              premier argument de <command>netprint</command>
              le nom de machine de l'imprimante et comme deuxi&egrave;me argument
              le num&eacute;ro du port auquel se connecter. Remarquez que la
              communication est &agrave; sens unique (de FreeBSD vers l'imprimante);
              nombre d'imprimantes r&eacute;seau sont capables de communiquer dans 
              les deux sens, et vous voudrez peut-&ecirc;tre en profiter (pour 
              conna&icirc;tre l'&eacute;tat de l'imprimante, g&eacute;rer la comptabilit&eacute;, 
              etc.).</para>

	      <programlisting>
#!/usr/bin/perl
#
#  netprint - filtre texte pour une imprimante r&eacute;seau
#  fichier /usr/local/libexec/netprint
#
$#ARGV eq 1 || die "Usage: $0 &lt;printer-hostname&gt; &lt;port-number&gt;";

$printer_host = $ARGV[0];
$printer_port = $ARGV[1];

require 'sys/socket.ph';

($ignore, $ignore, $protocol) = getprotobyname('tcp');
($ignore, $ignore, $ignore, $ignore, $address)
    = gethostbyname($printer_host);

$sockaddr = pack('S n a4 x8', &amp;AF_INET, $printer_port, $address);

socket(PRINTER, &amp;PF_INET, &amp;SOCK_STREAM, $protocol)
    || die "Impossible de cr&eacute;er la socket TCP/IP: $!";
connect(PRINTER, $sockaddr) || die "Impossible de contacter $printer_host: $!";
while (&lt;STDIN&gt;) { print PRINTER; }
exit 0;
	      </programlisting>
	    
	    <para>Nous pouvons utiliser cette proc&eacute;dure avec diff&eacute;rents
	      filtres. Supposons que nous ayons une imprimante ligne
              Diablo 750-N sur notre r&eacute;seau. Cette imprimante re&ccedil;oit les donn&eacute;es
              &agrave; 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' &agrave; l'&eacute;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&egrave;s aux imprimantes</title>
	  
	  <para>Cette section vous donne des informations sur les
            restrictions d'acc&egrave;s aux imprimantes. Le syst&egrave;me LPD
            vous permet de contr&ocirc;ler quels sont les utilisateurs
            qui peuvent acc&eacute;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
            &ecirc;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&egrave;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 &agrave; vous de d&eacute;cider si c'est une bonne chose.</para>
	    
	    <para>Si vous pensez que les impressions multiples usent
               inutilement vos imprimantes, vous pouvez d&eacute;sactiver 
	       l'option <option>-#</option> de 
               <citerefentry><refentrytitle>lpr</refentrytitle></citerefentry>
               en ajoutant la fonctionnalit&eacute; <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&eacute;e.)</para>
	    <para>Notez bien que si vous avez d&eacute;fini une entr&eacute;e pour une
                imprimante distante
	        (voyez la section 
                <link linkend="printing-advanced-network-rm">Imprimantes 
                install&eacute;es sur des machines distantes</link>), vous devrez aussi
	        d&eacute;finir la fonctionnalit&eacute; <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&eacute;sactiverons donc les impressions en plusieurs
              exemplaires en ajoutant la fonctionnalit&eacute;
	      <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&eacute;
              <literal>sc</literal> dans <filename>/etc/printcap</filename> 
              sur la machine <hostid>orchid</hostid> (et pendant que nous y
              sommes, d&eacute;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&eacute; <literal>sc</literal>,
              nous emp&ecirc;chons d'utiliser la commande <command>lpr -#</command>,
              mais cela n'&eacute;vite pas que les utilisateurs ex&eacute;cutent plusieurs
	      fois <citerefentry>
                <refentrytitle>lpr</refentrytitle></citerefentry>,
              ou soumettent plusieurs fois les m&ecirc;mes fichiers dans un m&ecirc;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&ecirc;cher ce type d'abus
	       que vous &ecirc;tes libre d'essayer (y compris l'ignorer).</para>
	    
	  </sect3>
	  
	  <sect3
	    id="printing-advanced-restricting-access">
	    <title>Restreindre l'acc&egrave;s aux imprimantes</title>
	    
	    <para>Vous pouvez contr&ocirc;ler qui imprime sur quelle imprimante
              avec le m&eacute;canisme des groupes d'UNIX et la fonctionnalit&eacute;
	      <literal>rg</literal> dans <filename>/etc/printcap</filename>.
              D&eacute;finissez les utilisateurs auxquels vous voulez autoriser l'acc&egrave;s
              &agrave; une imprimante dans un groupe pr&eacute;cis et donnez ce groupe
              en param&egrave;tre de la fonctionnalit&eacute; <literal>rg</literal>.</para>
	    
	    <para>Les utilisateurs qui n'appartiennent pas &agrave; 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&eacute;.)
	      s'ils essaient d'utiliser l'imprimante en question.</para>
	    
	    <para>De m&ecirc;me que pour la fonctionnalit&eacute; <literal>sc</literal> 
              (suppressions des exemplaires multiples), vous devez sp&eacute;cifier
	      <literal>rg</literal> sur les machines distantes qui ont acc&egrave;s
              &agrave; l'imprimante, si cela vous para&icirc;t indiqu&eacute; (voyez la section
	      <link linkend="printing-advanced-network-rm">Imprimantes
              install&eacute;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&egrave;s &agrave; 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&ucirc;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&egrave;s &agrave; certains utilisateurs
	      d'<hostid>orchid</hostid>.</para>

	    <note>
	      <para>Avec cette fonctionnalit&eacute;, il ne peut y avoir qu'un seul
                groupe d'utilisateurs autoris&eacute; par imprimante.</para>
	    </note>
	  </sect3>
	  
	  <sect3
	    id="printing-advanced-restricting-sizes">
	    <title>Contr&ocirc;ler la taille des travaux soumis</title>
	    
	    <para>Si de nombreux utilisateurs acc&egrave;dent &agrave; vos imprimantes, 
              vous voudrez probablement limiter la taille des fichiers
              qu'ils peuvent imprimer. Apr&egrave;s tout, l'espace disponible
              sur les syst&egrave;mes de fichiers o&ugrave; se trouvent les files
              d'attente n'est pas illimit&eacute;, 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&eacute;finir une taille maximum en octets
              que peut avoir un fichier &agrave; imprimer gr&acirc;ce &agrave; la fonctionnalit&eacute;
	      <literal>mx</literal>. L'unit&eacute; est le bloc BUFSIZ, qui est de
	      1024 octets. Si vous donnez en param&egrave;tre de cette fonctionnalit&eacute;
              la valeur z&eacute;ro, la taille des fichiers ne sera pas limit&eacute;e.</para>

	    <note>
	      <para>Cette limite s'applique &agrave; 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&eacute;e dans la file d'attente. Cette
              partie sera imprim&eacute;e, le reste sera ignor&eacute;. Est-ce la bonne
              m&eacute;thode, le d&eacute;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 &agrave; 5 m&eacute;ga-octets. Nous
              ne mettrons pas de limitation &agrave; l'utilisation de l'imprimante
              texte:</para>

	      <programlisting>
#
#  /etc/printcap pour la machine rose
#

#
#  Pas de limite &agrave; 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&eacute;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
              &agrave; distance, les utilisateurs distants ne seront pas
              assujettis &agrave; ces limites. Il vous faut aussi introduire la
              fonctionnalit&eacute; <literal>mx</literal> dans les fichiers
	      <filename>/etc/printcap</filename> des machines distantes. Voyez
	      la section <link
		linkend="printing-advanced-network-rm">Imprimantes install&eacute;es
                sur des machines distantes</link> pour plus d'informations sur
	      l'impression &agrave; distance.</para>
	    
	    <para>Il y a un autre moyen de limiter le volume des travaux
	      d'impression &agrave; distance; voyez la section <link
		linkend="printing-advanced-restricting-remote">Contr&ocirc;ler les
               impressions &agrave; distance</link>.</para>
	    
	  </sect3>
	  
	  <sect3
	    id="printing-advanced-restricting-remote">
	    <title>Contr&ocirc;ler les impressions &agrave; distance</title>
	    
	    <para>Le syst&egrave;me LPD fournit diff&eacute;rents moyens de contr&ocirc;ler
	      les impressions depuis des machines distantes:</para>
	    
	    
	      <variablelist>
		<varlistentry><term>Restrictions selon les machines</term>
		  <listitem>
		    <para>Vous pouvez contr&ocirc;ler de quelles machines distantes
                      le &ldquo;d&eacute;mon&rdquo; LPD local acceptera des requ&ecirc;tes
                      d'impression gr&acirc;ce aux fichiers
		      <filename>/etc/hosts.equiv</filename> et
		      <filename>/etc/hosts.lpd</filename>. LPD v&eacute;rifie si la
                      requ&ecirc;te vient d'une machine mentionn&eacute;e dans l'un de ces
                      deux fichiers. Si ce n'est pas le cas, il refuse la
		      requ&ecirc;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&eacute;
		      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&egrave;s.</para>
		  </listitem>
		</varlistentry>
		
		<varlistentry><term>Restrictions de volume</term>
		  
		  <listitem>
		    <para>Vous pouvez contr&ocirc;ler combien il doit rester
                      d'espace libre sur le syst&egrave;me de fichiers o&ugrave; se
                      trouve le r&eacute;pertoire de file d'attente. Cr&eacute;ez un
                      fichier appel&eacute; <filename>minfree</filename> dans
                      le r&eacute;pertoire de file d'attente de l'imprimante
                      local. Mettez-y un nombre de blocs disque (512 octets)
                      qui sera l'espace qui devra &ecirc;tre disponible pour
                      qu'un travail d'impression &agrave; distance soit accept&eacute;.</para>
		    
		    <para>Vous vous assurez ainsi que les utilisateurs distants
                      ne satureront pas votre syst&egrave;me de fichiers. Vous pouvez
                      aussi utiliser cette possibilit&eacute; pour donner une certaine
                      priorit&eacute; aux utilisateurs locaux: ils pourront mettre des 
                      travaux en attente bien apr&egrave;s que l'espace disponible
                      soit descendu en dessous de la valeur indiqu&eacute;e par
		      le fichier <filename>minfree</filename>.</para>
		    
		    <para>D&eacute;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&eacute;pertoire de file d'attente. Voici l'entr&eacute;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&eacute;pertoire de file d'attente est d&eacute;fini par la
		      fonctionnalit&eacute; <literal>sd</literal>. Nous fixerons &agrave;
		      trois m&eacute;ga-octets (soit 6144 blocs disque) l'espace
                      qui doit &ecirc;tre libre pour que LPD accepte des impressions
		      distantes:</para>
		  
		      <informalexample>
			<screen>&prompt.root; <userinput>echo 6144 &gt; /var/spool/lpd/bamboo/minfree</userinput></screen>
		      </informalexample>
		    
		  </listitem>
		</varlistentry>
		
		<varlistentry><term>Restrictions sur les utilisateurs</term>
		  
		  <listitem>
		    <para>Vous pouvez contr&ocirc;ler quels utilisateurs distants
                      peuvent utiliser les imprimantes locales avec la
                      fonctionnalit&eacute; <literal>rs</literal> dans
		      <filename>/etc/printcap</filename>. Quand 
                      <literal>rs</literal> est mentionn&eacute;e dans l'entr&eacute;e
                      correspondant &agrave; 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&ecirc;me nom
                      sur la machine locale. Sinon, le travail d'impression
                      sera refus&eacute;.</para>
		    
		    <para>Cette fonctionnalit&eacute; est particuli&egrave;rement utile
                      lorsque (par exemple) plusieurs d&eacute;partements partagent un r&eacute;seau
                      et certains utilisateurs sont &agrave; cheval sur plusieurs
                      d&eacute;partements. En leur ouvrant un compte sur vos
                      syst&egrave;mes, ils peuvent utiliser les imprimantes de
                      leur propre d&eacute;partement. Si vous pr&eacute;f&eacute;rez qu'ils
		      n'utilisent que <emphasis>vos</emphasis> imprimantes, mais
                      pas vos machines, vous pouvez leur ouvrir des comptes
		      &ldquo;jeton&rdquo;, sans r&eacute;pertoire utilisateur et
                      avec un interpr&eacute;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&ucirc;tent de l'argent. Il y a aussi les co&ucirc;ts
            de maintenance. Les imprimantes ont des pi&egrave;ces mobiles qui ont
            tendance &agrave; casser. Vous avez fait un bilan du co&ucirc;t de vos
            imprimantes, consommables et frais de maintenance et avez 
            calcul&eacute; un coup &agrave; la page (ou au m&egrave;tre, ou toute autre unit&eacute;).
            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&eacute;pend dans une large mesure du type d'imprimante,
            du format utilis&eacute;, 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&icirc;tre le nombre de pages imprim&eacute;es. Vous
            ne pouvez pas vous en sortir avec un simple filtre de sortie, qui
            n'est pas capable de g&eacute;rer la comptabilit&eacute;. Voyez la section
	    <link 
            linkend="printing-advanced-filter-intro">Filtres</link>.</para>
	  
	  <para>D'une fa&ccedil;on g&eacute;n&eacute;rale, il y a deux m&eacute;thodes de faire la 
             facturation:
	    <itemizedlist>
	      
	      <listitem>
		<para>La <emphasis>facturation p&eacute;riodique</emphasis> est la
                  m&eacute;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&eacute;es. Tous
                  les mois, semestres, ann&eacute;es, ou avec la p&eacute;riodicit&eacute; que vous
                  voulez, vous r&eacute;cup&eacute;rez les fichiers comptables des diff&eacute;rentes
                  imprimantes et facturez leur utilisation. Vous r&eacute;initialisez
                  ensuite ces fichiers, et repartez &agrave; z&eacute;ro pour la p&eacute;riode
                  suivante.</para>
	      </listitem>
	      
	      <listitem>
		<para>La <emphasis>facturation &agrave; la vol&eacute;e</emphasis> est moins
                  utilis&eacute;e, certainement parce qu'elle est plus d&eacute;licate. Avec
                  cette m&eacute;thode, les filtres facturent les utilisateurs d&egrave;s
                  qu'ils utilisent les imprimantes. Comme pour les quotas
                  d'espace disque, la comptabilit&eacute; est imm&eacute;diate, Vous pouvez
                  interdire aux utilisateurs d'imprimer d&egrave;s qu'ils sont dans le
                  rouge et leur fournir un moyen de consulter et modifier
                  leurs &ldquo;quotas d'impression&rdquo;.  Mais cette
                  m&eacute;thode demande de mettre en oeuvre une base de donn&eacute;es
                  pour g&eacute;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&eacute;thodes: de m&ecirc;me que vous devez fournir des filtres
            (la plupart du temps, au moins), vous devez aussi &eacute;crire le code
            de facturation. Mais cela a un avantage: vous avez &eacute;normement de
            souplesse pour la m&eacute;thode. Par exemple, vous pouvez choisir entre
            la facturation p&eacute;riodique ou &agrave; la vol&eacute;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&eacute; de papier utilis&eacute;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&eacute;e</title>
	    
	    <para>FreeBSD inclut deux programmes que vous pouvez imm&eacute;diatement
              configurer pour une facturation p&eacute;riodique de base. Ce sont le
              filtre texte <command>lpf</command>, d&eacute;crit &agrave; 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&eacute;es des fichiers 
                comptables.</para>
	    
	    <para>Comme indiqu&eacute; &agrave; la section sur les filtres (<link
		linkend="printing-advanced-filters">Filtres</link>), LPD
                ex&eacute;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&egrave;tre pour savoir o&ugrave; &eacute;crire
                l'enregistrement comptable. Le nom du fichier est pr&eacute;cis&eacute; par
                la fonctionnalit&eacute; <literal>af</literal> du fichier
	        <filename>/etc/printcap</filename>, avec un chemin d'acc&egrave;s
                absolu ou relatif au r&eacute;pertoire de file d'attente.</para>
	    
	    <para>LPD ex&eacute;cute <command>lpf</command> avec comme param&egrave;tres
              la largeur et la hauteur de page (d&eacute;finies par les
              fonctionnalit&eacute;s <literal>pw</literal> et <literal>pl</literal>). 
              <command>lpf</command> utilise ces arguments pour savoir combien
              il faudra de papier. Apr&egrave;s avoir envoy&eacute; le fichier &agrave; l'imprimante,
              il g&eacute;n&egrave;re alors un enregistrement dans le fichier comptable. Cet 
              enregistrement ressemble &agrave; 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&eacute;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 &eacute;crivaient en m&ecirc;me temps dans le m&ecirc;me fichier. Une fa&ccedil;on 
              simple d'&ecirc;tre s&ucirc;r que l'on a des fichiers diff&eacute;rents pour chaque
              imprimante est d'utiliser <literal>af=acct</literal> dans
	      <filename>/etc/printcap</filename>. On a alors dans les
              r&eacute;pertoires de file d'attente de chaque imprimante, un fichier
              comptable appel&eacute; <filename>acct</filename>.</para>
	    
	    <para>Quand vous voulez facturer les utilisateurs, 
	      ex&eacute;cutez le programme <citerefentry>
	      <refentrytitle>pac</refentrytitle></citerefentry>.
              Allez simplement dans le r&eacute;pertoire de file d'attente
              de l'imprimante dont vous voulez r&eacute;cup&eacute;rer les informations
              comptables et tapez <citerefentry>
		<refentrytitle>pac</refentrytitle></citerefentry>. Vous
	      obtiendrez un r&eacute;sum&eacute; (en dollars) des co&ucirc;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&eacute;sum&eacute; comptable. Cette option ne fonctionne
                      que si l'on a donn&eacute; un chemin d'acc&egrave;s absolu &agrave; la
		      fonctionnalit&eacute; <literal>af</literal>
		      dans <filename>/etc/printcap</filename>.</para>
		  </listitem>
		</varlistentry>
		
		<varlistentry><term><option>-c</option></term>
		  
		  <listitem>
		    <para>Trier par co&ucirc;ts au lieu d'utiliser l'ordre
                      alphab&eacute;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&eacute; pour la
                    comptabilit&eacute;. Avec cette option, l'utilisateur
		    <username>smith</username> sur la machine
                    <hostid>alpha</hostid> est le m&ecirc;me utilisateur que
                    <username>smith</username> sur la machine
		    <hostid>gamma</hostid>. Sinon, ils sont consid&eacute;r&eacute;s comme
                    des utilisateurs diff&eacute;rents.</para>
		  </listitem>
		</varlistentry>
		
		<varlistentry><term><option>-p<replaceable>prix</replaceable></option></term>
		  
		  <listitem>
		    <para>Calculer les co&ucirc;ts sur la base du 
                    <replaceable>prix</replaceable> en dollars par page ou par
                    pied (&ldquo;ft&rdquo;) au lieu d'utiliser la valeur donn&eacute;e
                    avec la fonctionnalit&eacute; <literal>pc</literal> dans
		    <filename>/etc/printcap</filename>, ou deux 
                    centimes (la valeur par d&eacute;faut). 
		    <replaceable>prix</replaceable> peut &ecirc;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&eacute;sum&eacute; 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&eacute;sum&eacute; que produit <citerefentry>
		<refentrytitle>pac</refentrytitle></citerefentry>
	      par d&eacute;faut, vous avez le nombre de pages imprim&eacute;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&eacute;capitulatif qui ressemble &agrave;:</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&eacute; <literal>pc</literal> du fichier
	      <filename>/etc/printcap</filename> (200 par d&eacute;faut, soit 2
	      centimes par page). Donnez, en centi&egrave;mes de centimes, le prix
	      par page ou par pied que vous voulez facturer. Cette valeur
              peut &ecirc;tre red&eacute;finie quand vous utilisez 
	      <citerefentry>
		<refentrytitle>pac</refentrytitle></citerefentry> avec
	      l'option <option>-p</option>. Avec l'option
	      <option>-p</option>, l'unit&eacute; est le dollar et non plus
              le centi&egrave;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&eacute;sum&eacute; dans un fichier comptable r&eacute;capitulatif, de m&ecirc;me nom
              que le fichier comptable associ&eacute; &agrave; l'imprimante, mais suffix&eacute;
              par <literal>_sum</literal>. Le fichier comptable est ensuite
              tronqu&eacute;. La prochaine fois que vous utiliserez 
              <citerefentry><refentrytitle>pac</refentrytitle></citerefentry>,
              ce fichier r&eacute;capitulatif sera relu et pris en compte pour
              recalculer les totaux, en y ajoutant ce qui est comptabilis&eacute;
	      dans le fichier comptable normal.</para>
	    
	  </sect3>
	  
	  <sect3>
	    <title>Comment compter le nombre de pages imprim&eacute;es?</title>
	    
	    <para>Pour comptabliser correctement les impressions, m&ecirc;me &agrave;
              distance, vous devez pouvoir calculer la quantit&eacute; de papier
              consomm&eacute;e par chaque travail. C'est la difficult&eacute; principale
              li&eacute;e &agrave; la facturation des impressions.</para>
	    
	    <para>Pour les impressions en mode texte, la difficult&eacute; n'est
              pas si grande: vous comptez le nombre de lignes &agrave; imprimer
              et le comparer au nombre de lignes que l'imprimante peut
              &eacute;diter par page. N'oubliez pas de prendre les retours arri&egrave;re
              en compte, lorsqu'il y a sur-impression, de m&ecirc;me que les lignes
              trop longues qui s'impriment sur plus d'une ligne.</para>
	    
	    <para>Le filtre texte <command>lpf</command>
	      (d&eacute;crit dans <link 
              linkend="printing-advanced-lpf"><command>lpf</command>: un filtre 
              texte</link>) prend tout cela en compte lorsqu'il g&egrave;re
              la comptabilit&eacute;. Si vous &eacute;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
              &ecirc;tre en mesure de faire de m&ecirc;me avec d'autres formats de fichiers
              et d'autres programmes de conversion.</para>
	    
	    <para>Ces m&eacute;thodes sont toutefois limit&eacute;es parce qu'elles ne 
              prennent pas en compte le fait que l'imprimante n'imprimera
              peut-&ecirc;tre pas toutes ces pages. Il peut par exemple y avoir 
              bourrage ou manque d'encre&nbsp;-&nbsp;et l'utilisateur sera malgr&eacute;
              tout factur&eacute;.</para>
	    
	    <para>Que pouvez-vous alors faire?</para>
	    
	    <para>Il n'y a qu'une seule m&eacute;thode <emphasis>s&ucirc;re</emphasis> 
	      pour tenir une comptabilit&eacute; <emphasis>pr&eacute;cise</emphasis>.
              Faire dire &agrave; l'imprimante combien de papier elle utilise, et
              la connecter sur un port s&eacute;rie ou directement sur le r&eacute;seau.
              Pratiquement toutes les imprimantes PostScript offrent cette
              possibilit&eacute;. C'est aussi faisable avec d'autres mod&egrave;les (les
              imprimantes laser r&eacute;seau Imagen, par exemple). Modifiez les
              filtres de ces imprimantes pour lire le nombre de pages
              imprim&eacute;es &agrave; la fin de chaque travail et reportez dans le 
              fichier comptable des informations qui se basent 
              <emphasis>uniquement</emphasis> l&agrave;-dessus. Il n'y a alors pas besoin
              de compter les lignes ou d'un examen des fichiers qui peut
              &ecirc;tre source d'erreurs.</para>
	    
	    <para>Vous pouvez toujours en d&eacute;finitive vous montrer g&eacute;n&eacute;reux et
	      instituer la gratuit&eacute; 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&eacute;gralement ce document jusqu'ici, 
          vous savez maintenant &agrave; peu pr&egrave;s tout ce qu'il faut savoir sur
          le gestionnaire d'impression LPD qui est livr&eacute; avec FreeBSD. Vous
          pouvez juger de ses limitations, ce qui vous am&egrave;ne tout naturellement
          &agrave; vous demander s'il existe d'autres gestionnaires d'impression
          (qui fonctionnent sous FreeBSD).</para>
	
	<para>Malheureusement, je n'ai trouv&eacute; que <emphasis>deux</emphasis>
	  alternatives&nbsp;-&nbsp;et elles sont quasiment semblables! Ce sont:</para>
	
	  <variablelist>
	    <varlistentry><term>PLP, le &ldquo;Portable Line Printer 
              Spooler&rdquo;
                (gestionnaire d'impression en ligne portable)</term>
	      <listitem>
		<para>PLP est bas&eacute; sur un logiciel d&eacute;velopp&eacute; par Patrick Powell
                  puis maintenu par un groupe de d&eacute;veloppeurs sur Internet. Le
                  site de r&eacute;f&eacute;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&eacute;liore un grand nombre de fonctionnalit&eacute;s, dont:
		  <itemizedlist>
		    
		    <listitem>
		      <para>Meilleur support r&eacute;seau, dont le support int&eacute;gr&eacute;
                        des imprimantes r&eacute;seau, 
                        fichiers <filename>printcap</filename> g&eacute;r&eacute;s par NIS,
                        et montage NFS des r&eacute;pertoires tampons.</para>
		    </listitem>
		    
		    <listitem>
		      <para>Gestion sophistiqu&eacute;e des files d'attentes, 
                        permettant d'avoir plusieurs imprimantes sur la m&ecirc;me
                        file, le transfert de travaux d'une file &agrave; une autre,
                        et la redirection des files d'attente.</para>
		    </listitem>
		    
		    <listitem>
		      <para>Fonctions de contr&ocirc;le &agrave; distance des
                         imprimantes.</para>
		    </listitem>
		    
		    <listitem>
		      <para>Gestion des priorit&eacute;s des travaux.</para>
		    </listitem>
		    
		    <listitem>
		      <para>Extensions aux options d'acc&egrave;s et de s&eacute;curit&eacute;.</para>
		    </listitem>
		    
		  </itemizedlist>
		</para>
	      </listitem>
	    </varlistentry>
	    
	    <varlistentry><term>LPRng</term>
	      
	      <listitem>
		<para>LPRng, qui signifie &ldquo;LPR: the Next
		  Generation&rdquo; (LPR : la g&eacute;n&eacute;ration suivante) est une 
                  r&eacute;&eacute;criture compl&egrave;te de PLP. Patrick Powell
		  et Justin Mason (le principal responsable de la maintenance
                  de PLP) ont coop&eacute;r&eacute; pour r&eacute;aliser LPRng. Le site de 
                  r&eacute;f&eacute;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&eacute;e pour r&eacute;aliser ce document:</para>
	
	  <variablelist>
	    <varlistentry><term>Daniel Eischen
		<email>deischen@iworks.interworks.org</email></term>
	      <listitem>
		<para>Qui a fourni une pl&eacute;thore de programmes de filtre HP
                  que j'ai pu r&eacute;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&eacute; 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: 
-->       
