Impression sous Linux
Transcription
Impression sous Linux
Impression sous Linux Stéphane Gill [email protected] Table des matières Introduction 2 Gestion de la file d’attente d’impression 2 Impression d’un fichier 2 Contenu de la file d’attente d’impression 3 lprm, annuler une tâche d’impression 4 lpc, contrôler le programme lpd 4 Impression depuis une application 5 Paramétrage d’un service d’impression lpd 5 Installation 5 Impression locale 6 Impression distante 6 /etc/printcap 7 Démarrage 8 Paramétrage d’un service d’impression CUPS 8 Ajout d’une imprimante locale 10 Création d’un serveur d’impression 10 Références 11 Document écrit par Stéphane Gill © Copyright 2004 Stéphane Gill Ce document est soumis à la licence GNU FDL. Permission vous est donnée de distribuer et/ou, modifier des copies de ce document tant que cette note apparaît clairement. Impression sous Linux Introduction Parmi les différentes fonctionnalités qui doivent être offerte par un système informatique Linux, l’impression est celle qui nécessite la plus grande attention. Un tel système n’est pas une simple application gérant le périphérique d’impression mais plutôt une application client/serveur complexe. Un système d’impression doit gérer les demandes d’impression provenant aussi bien des utilisateurs locaux que des utilisateurs distants. Il existe deux systèmes d’impression généralement utilisés sous Linux : • lpd, le système BSD de l’université de Californie; • CUPS, « Common UNIX printing System ». Historiquement, les imprimantes UNIX supportaient un langage commun, le PostScript. Avec a prolifération des imprimantes bon marché, de nombreux constructeurs ont abandonné le PostScript au profit de leur propre langage. Le problème qui se pose maintenant est de transformé le PostScript en un langage compréhensible pour l’imprimante. Cette opération s’effectue à l’aide de filtre. Les paquetages de filtre les plus connus sont : • APS Filter; • Magic Filter. Pour obtenir de l’information sur les imprimantes supporter sous Linux et les filtres disponibles, il est possible de consulter le site Web LinuxPrinting.org. Dans ce document, les commandes permettant d’imprimer et de gérer la file d’attente d’impression sont d’abord présenté. Par la suite, l’installation et le paramétrage d’un serveur d’impression lpd et CUPS sont présentés. Gestion de la file d’attente d’impression Impression d’un fichier Pour soumettre un travail d’impression directement depuis la ligne de commande sous la forme d’un fichier ou d’un flux de données, la commande lpr est utilisée. © Copyright 2004 Stéphane Gill Page 2 Impression sous Linux Exemple 1 : Envoyer un fichier PostScript fichier.ps à l’impression. # lpr fichier.ps Exemple 2 : Imprimer la liste des fichiers contenus dans le répertoire /var/log. ls /var/log | lpr La commande lpr accepte de nombreux paramètres qui permettent de contrôler son fonctionnement. Les paramètres les plus utilisés sont : Paramètre Description -Pimprimante Spécifier l’imprimante à utiliser. -#num Spécifier le nombre de copie à imprimer. Exemple 3 : Imprimer le fichier /etc/lilo.conf 3 fois. lpr -#3 /etc/lilo.conf Exemple 4 : Imprimer le fichier fichier.ps en passant par la file d’attente MaFile. lpr –PmaFile fichier.ps Contenu de la file d’attente d’impression La commande lpq permet d’afficher à l’écran le contenu de la file d’attente. Employée sans paramètres lpq affiche le contenu de la file d’attente par défaut. [root@Linux1 root]# lpq Printer: lp@localhost Queue: 1 printable job Server: pid 14325 active Unspooler: pid 14326 active Rank Owner/ID 1 root@localhost+324 Class Job Files A 324 rapport.html Size Time 13147 09:27:42 [root@Linux1 root]# © Copyright 2004 Stéphane Gill Page 3 Impression sous Linux Exemple 1 : Afficher le contenu de la file d’attente d’impression lp. lpq –Plp lprm, annuler une tâche d’impression Une autre fonctionnalité utile de tout système d’impression est la possibilité d’annuler une tâche qui a été préalablement envoyés dans la file d’attente. Pour ce faire, la commande lprm est utilisée. Exemple 1 : Annuler tous les travaux d’impression qui appartiennent à l’utilisateur lprm – Exemple 2 : Annuler la tâche d’impression 193 qui se trouve dans la fille d’attente lp. lprm –Plp 193 lpc, contrôler le programme lpd Le programme lpc est utilisé pour contrôler les imprimantes gérer par lpd. lpc peut être utilisé en mode interactif ou sur la ligne de commande. Lorsque la commande lpc est utilisée sans option, elle démarre en mode interactif. Par exemple : [root@Linux1 root]# lpc lpc>status Printer Printing Spooling Jobs lp@localhost enabled enabled 0 Server Subserver Redirect none none lpc>quit [root@Linux1 root]# En mode interactif lpc accepte de nombreuse commande, en voici la liste : Commande Description disable option Empêche l'entrée de tout nouveau travail d'impression down option Désactive toute impression sur l'imprimante enable option Autorise de nouveaux travaux à intégrer la file d'impression © Copyright 2004 Stéphane Gill Page 4 Impression sous Linux quit (ou exit) Quitte lpc restart option Relance lpd pour cette imprimante status option Imprime l'état de l'imprimante up option Autorise tout et lance un nouveau lpd Exemple 1 : Affiche l’état des imprimantes. lpc status Impression depuis une application La plupart des applications graphiques proposent un menu d’impression semblable à celui de la figure suivante. Malgré, l’interface graphique ces applications utilise habituellement la commande lpr qu’il faut parfois paramétrer. Figure 1 :Menu d'impression d'OpenOffice Paramétrage d’un service d’impression lpd Installation Le système d’impression Unix comprend les 5 programmes suivants : © Copyright 2004 Stéphane Gill Page 5 Impression sous Linux • /usr/bin/lpr • /usr/bin/lpq • /usr/bin/lprm • /usrésbin/lpc • /usr/sbin/lpd Sous RedHat 9 ces programmes sont disponible dans le paquetage xyz.rpm. Impression locale L’impression locale permet aux distributeurs d’envoyer des travaux d’impression à une imprimante directement connecter à l’ordinateur. lpr lpd Impression distante L’impression distante permet de soumettre des travaux d’impression depuis un ordinateur, à un autre ordinateur sur le réseau, sur laquelle est connectée une imprimante. lpd lpd lpr © Copyright 2004 Stéphane Gill Page 6 Impression sous Linux /etc/printcap Le fichier /etc/printcap est la base de la configuration de lpd. lpd utilise ce fichier à chaque fois qu’un travail d’impression est soumis. /etc/printcap est composé de plusieurs ligne, chaque lignes définissent une file d’attente d’impression. Voici la liste des symboles utilisés : Symbole Description \ La ligne courante se poursuit sur la ligne suivante. : Chaque assignation de variable est séparée par un deux points. = Assignation d’une chaîne de caractères. # Assignation d’une valeur entière. | Ce symbole sépare le nom de la file d’attente de ces alias. Voici un exemple de fichier /etc/printcap pour une imprimante connectée sur le port parallèle. lp|ljet:\ :sd=/var/spool/lpd/lp:\ :mx#0:\ :sh:\ :lp=/dev/lp0:\ :if=/var/spool/lpd/lp/filter:\ :lf=/var/spool/lpd/lp/log:\ :af=/var/spool/lpd/lp/acct: La première ligne de l’exemple précédent défini le nom de la file d’attente d’impression ainsi que le nom des alias. Les variables utilisées sont décrites dans le tableau suivant. Symbole Description sd Définit le répertoire de spool, c'est-à-dire l'emplacement sur le système de fichiers où seront stockés les travaux en attente pour la file d'impressions. mx Définit la taille maximale des fichiers. 0 nous permet de définit une taille illimitée. sh Booléen permettant de désactiver l'impression d'une entête. Sa seule présence suffit pour assigner une valeur vraie. © Copyright 2004 Stéphane Gill Page 7 Impression sous Linux lp Indique le périphérique physique à utiliser pour l'impression. (/dev/lp0, le premier port parallèle) if Donne le chemin vers le filtre à utiliser pour l'impression. lf Spécifie le fichier dans lequel il faut placer les messages d'erreur. af Spécifie le fichier où stocker les informations de comptabilisation (acct). Certaines imprimantes possèdent une file d’attente d’impression Unix intégré. C’est le cas des imprimantes HP possédant une interface JetDirect. Voici un exemple de fichier /etc/printcap permettant d’utiliser une imprimante réseau avec une interface JetDirect. lp|ljet:\ :lp=:\ :rm=192.168.100.10:\ :rp=text:\ :lf=/var/spool/lpd/log:\ :sd=/var/spool/lpd/ljet: Démarrage Pour démarrer le service d’impression, il suffit de taper la commande : service lpd start Paramétrage d’un service d’impression CUPS Paramétrage d’impression CUPS est disponible sur le site www… Un paquetage rpm est disponible pour la plupart des distributions. Sous RedHat 9 l’installation ce fait via la commande rpm suivante : rpm –i qtcups-2.0-15 rpm –i cups-libs-1.1.17-13 rpm –i cups-1.1.17-13 © Copyright 2004 Stéphane Gill Page 8 Impression sous Linux Fichier de configuration Scheduler http/1.1 server CUPS API Filtre Commande BSD Le paramétrage de CUPS se fait via une interface Web. Par défaut cette interface n’est pas disponible à distance. Pour démarrer l’interface d’administration de CUPS démarrer un navigateur Web et taper l’URL http://localhost:631/admin/. Par défaut seul root peut administrer CUPS, s’il est nécessaire que d’autre utilisateur administre le serveur d’impression il est nécessaire de l’ajouter au groupe lpadmin. Figure 2 : Interface d'administration de CUPS © Copyright 2004 Stéphane Gill Page 9 Impression sous Linux Ajout d’une imprimante locale Pour ajouter une imprimante il suffit de cliquer « ajouter une imprimante » et de répondre aux questions de l’assistant. 1. Donnez un nom (sans espace) à votre imprimante (et éventuellement un emplacement et une description) ; 2. sélectionnez le périphérique d'accès à l'imprimante : si c'est une imprimante sur port parallèle, sélectionnez Parallel port #1, si c'est une imprimante sur port USB, sélectionnez USB printer #1 ; 3. sélectionnez la marque de votre imprimante ; 4. Sélectionner le modèle de votre imprimante : si le nom exact n'apparaît pas, rappelezvous du nom du driver qui était recommandé par LinuxPrinting.org. Sur votre poste de travail RedHat les filtres seront stocker dans le répertoire /usr/local/share/cups/model (ou /usr/share/cups/model). Il est aussi possible d’ajouter une imprimante à l’aide de la commande lpadmin. Voici un exemple : lpadmin –p printer –E –v parrallel:/dev/lp1 –m deskjet.ppd Création d’un serveur d’impression Maintenant que l’impression locale est disponible, il est facile de transformer l’ordinateur en serveur d’impression. Pour ce faire éditer le fichier /etc/cups/cupsd.conf. Modifier le contenu du paragraphe Location pour autoriser les autres ordinateurs du réseau à utiliser le serveur CUPS. Par exemple, autorisé les ordinateurs du réseau 192.168.100.0 à utiliser le serveur d’impression. <Location /> Order Deny,Allow Deny From All Allow From 192.168.100.0/255.255.255.0 </Location> Ne pas oublier de redémarre le serveur CUPS à l’aide de la commande : service cupsd restart © Copyright 2004 Stéphane Gill Page 10 Impression sous Linux Il est aussi nécessaire de configurer tous les postes client susceptibles d’utiliser le serveur d’impression. Pour ce faire modifier le fichier /etc/cups/client.conf en ajoutant l’adresse IP du serveur à la ligne suivante : ServerName 192.168.0.42 Références Jeffrey Dean, « LPI Linux Certification in a Nutshell, A Desktop Quick Reference », O’Reilly, 2001. Denis Bodor, « L’impression sous Linux », http://www.docmaster.org/articles/linux/linux124.html, 2002. © Copyright 2004 Stéphane Gill Page 11