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 Stéphane Gill
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
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.
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 Class Job Files Size Time 1 root@localhost+324 A 324 rapport.html 13147 09:27:42 [root@Linux1 root]#
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 Server Subserver Redirect lp@localhost enabled enabled 0 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
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 :
• /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.
lpd lpr
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
lpr lpd
/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.
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
Scheduler http/1.1 server Fichier de
configuration
CUPS API
Commande BSD
Filtre
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
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, rappelez- vous 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
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.