Page suivante - Page précédente - Table des matières

2. Imprimer sous Linux

Cette section décrit comment imprimer des fichiers, examiner la file d'impression, supprimer des travaux de la file d'impression, formater des fichiers avant de les imprimer ainsi que comment configurer votre environnement d'impression.

2.1 Historique de l'impression sous Linux

Le système d'impression de Linux, le gestionnaire lp, est un portage du code source écrit par the Regents of the University of California pour la version BSD du système d'exploitation UNIX.

2.2 Imprimer un fichier en utilisant lpr

La manière la plus simple, et de loin, d'imprimer un fichier sous le système d'exploitation Linux est de l'envoyer directement sur le périphérique d'impression. Une façon de le faire est d'utiliser la commande cat. En tant qu'utilisateur root, on peut faire quelque chose du genre :


# cat thesis.txt> /dev/lp

Dans le cas présent, /dev/lp est un lien symbolique vers le périphérique d'impression réel, que ce soit une imprimante matricielle ou laser, un logiciel de mise en page ou un traceur. (Cf ln(1) pour plus d'information sur les liens symboliques.)

Pour des raisons de sécurité, seulement l'utilisateur root et les utilisateurs dans le même groupe que le démon d'impression sont autorisés à écrire directement sur l'imprimante. C'est pourquoi des commandes telles que lpr, lprm et lpq doivent être utilisées pour accéder à l'imprimante.

De ce fait, les utilisateurs doivent utiliser lpr pour imprimer un fichier. La commande lpr prend en charge tout le travail initial nécessaire à l'impression du fichier puis passe le contrôle à un autre programme, lpd, le démon d'impression. Celui-ci dit alors à l'imprimante comment imprimer le fichier.

Quand lpr est exécuté, il commence par copier le fichier spécifié vers un répertoire particulier (le répertoire spool) où le fichier demeure jusqu'à ce que lpd l'ait imprimé. Une fois que lpd est prévenu de l'existence d'un fichier à imprimer, il va produire une copie de lui-même (ce que nous programmeurs appelons forking). Cette copie imprimera alors notre fichier alors que l'original attend d'autres requêtes d'impression. Cela permet à de multiples travaux d'être intégrés à la queue au même instant.

La syntaxe de lpr(1) est très familière :


$ lpr [ options ] [ nom_du_fichier ... ]

Si un nom de fichier n'est pas spécifié, lpr attend une entrée en provenance de l'entrée standard (généralement le clavier ou le résultat d'un autre programme). Cela permet à l'utilisateur de rediriger la sortie d'une commande vers le gestionnaire d'impression. Ainsi :


$ cat thesis.txt | lpr

ou

$ pr -l60 thesis.txt | lpr

La commande lpr accepte de nombreux arguments sur la ligne de commande qui permettent à l'utilisateur de contrôler son fonctionnement. Certains de ces arguments les plus utilisés sont :

  • -Pprinter pour spécifier l'imprimante à utiliser
  • -s pour créer un lien symbolique plutôt que de copier le fichier dans le répertoire d'impression (utile pour de gros fichiers)
  • -#num pour spécifier le nombre de copies à imprimer
Un exemple d'utilisation de lpr pourrait être du genre :

$ lpr -#2 -sP dj thesis.txt

Cette commande créera un lien symbolique vers le fichier thesis.txt dans le répertoire spool pour l'imprimante appelée dj, où il sera traité par lpd. Il imprimera alors une seconde copie de thesis.txt.

Pour une liste de toutes les options que lpr reconnaîtra, voyez lpr(1).

2.3 Voir la file d'impression avec lpq

Pour voir le contenu de la file d'impression, utilisez la commande lpq. Employée sans arguments, elle renvoie le contenu de la file d'impression de l'imprimante par défaut.

La sortie retournée par lpq peut être utile à plus d'un titre.


$ lpq
lp is ready and printing
Rank   Owner      Job  Files                            Total Size
active mwf        31   thesis.txt                       682048 bytes

2.4 Annuler un travail d'impression en utilisant lprm

Une autre fonctionnalité utile de tout système d'impression est la possibilité d'annuler un travail qui a été préalablement envoyé dans la file. Pour ce faire, utilisez lprm.


$ lprm -

La commande ci-dessus annule tous les travaux d'impression qui appartiennent à l'utilisateur qui a employé la commande. Un travail d'impression en particulier peut être annulé en se munissant en premier lieu du numéro de travail tel que mentionné par lpq puis en donnant ce numéro à lprm. Par exemple :


$ lprm 31

annulerait le travail 31 (thesis.txt) de l'imprimante par défaut.

2.5 Contrôler le programme lpd avec lpc.

Le programme lpc(8) est utilisé pour contrôler les imprimantes que lpd dessert. Vous pouvez activer ou désactiver une imprimante ou ses files d'impression, réorganiser les travaux à l'intérieur d'une file, et obtenir un rapport d'état sur les imprimantes ou leurs files. Lpc est le plus souvent utilisé dans une configuration où de multiples imprimantes sont raccordées à la même machine.


$ lpc

La commande ci-dessus lancera le programme lpc. Par défaut, vous entrez alors en mode interactif et vous pouvez commencer à envoyer des commandes. L'autre option est d'employer une commande lpc sur la ligne de commande.


$ lpc status all

Une liste de toutes les commandes disponibles se trouve dans les pages man de lpd mais voici quelques unes des commandes majeures dont vous allez avoir besoin. Toutes les commandes où figure option acceptent soit un nom d'imprimante particulier (lp, print, etc) ou le mot-clé all qui désigne toutes les imprimantes.

  • 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

2.6 Le programme printtool sous RedHat.

Juste quelques mots sur l'étonnant programme printtool de RedHat. Il semble être en mesure de faire tout ce qu'un filtre magique ferait. RedHat installe déjà la plupart des programmes nécessaires au filtrage. Voici comment j'ai configuré mon imprimante sous RH 4.0 avec une HP LJ 4L connectée à mon port parallèle.

  • Devenez root et lancez printtool (si vous avez utilisé su, vous vous êtes rappelé de faire SETENV DISPLAY :0.0 et xhost +, n'est-ce pas ?)
  • Cliquez sur Add et appuyez sur OK pour une imprimante locale
  • Remplissez l'information sur le périphérique d'impression (/dev/lp1 pour moi)
  • Complétez le filtre d'entrée : sélectionnez un type d'imprimante, une résolution, et la taille du papier (ljet4, 300x300 et letter)
  • Appuyez sur OK jusqu'à revenir au point de départ et relancez lpd.

Comme si vous remplissiez un fichier /etc/printcap à la main, vous pouvez avoir de multiples définitions d'imprimante pour chacune de vos imprimantes réelles. Une pour chaque taille de papier, pour les différentes résolutions, etc.


Page suivante - Page précédente - Table des matières