Recherche de site Web

Imprimez des fichiers depuis votre terminal Linux


Pour imprimer un fichier depuis votre terminal, utilisez la commande lpr.

Imprimer sous Linux est facile, mais cela demande parfois beaucoup de travail de lancer une application, d'ouvrir un fichier, de trouver la sélection Imprimer dans le menu, de cliquer sur un bouton de confirmation, etc. Lorsque vous êtes un utilisateur de terminal Linux, vous souhaitez souvent effectuer des actions complexes avec des déclencheurs simples. L'impression est complexe, et il n'y a rien d'aussi simple que la commande lpr.

Imprimer à l'aide de la commande lpr

Pour imprimer un fichier depuis votre terminal, utilisez la commande lpr :

$ lpr myfile.odt

En cas d'échec, vous devez définir une imprimante par défaut ou spécifier une imprimante manuellement.

Définition d'une imprimante par défaut

D'après mon exemplaire usé d'un manuel de Berkeley 4.2 imprimé en 1984, la commande lpr paginé et envoyait un fichier à un spool d'imprimante, qui diffusait les données vers quelque chose appelé une imprimante en ligne.

Figure 1 : La commande lpr.

De nos jours, la commande lpr est insuffisante car les ordinateurs modernes ont probablement accès à plusieurs imprimantes, et certainement à des imprimantes beaucoup plus complexes qu'une imprimante matricielle en ligne. Il existe désormais un sous-système, appelé Common Unix Printing System (CUPS), pour garder une trace de toutes les imprimantes auxquelles vous souhaitez que votre ordinateur accède, quel pilote votre ordinateur doit utiliser pour communiquer avec chaque imprimante, quelle imprimante utiliser par défaut et bientôt. Les commandes lpr.cups ou lpr-cups, fournies avec CUPS et généralement liées symboliquement à lpr, vous permettent d'imprimer depuis un terminal en référençant votre Configuration du système d'impression Common Unix (CUPS) en premier.

Pour imprimer un fichier avec lpr, vous devez d'abord définir une imprimante par défaut. Vous pouvez définir une imprimante par défaut dans les paramètres d'imprimante de votre système :

Figure 2 : Définir une imprimante par défaut.

Alternativement, vous pouvez marquer une imprimante comme imprimante par défaut avec la commande lpadmin :

$ sudo lpadmin -d HP_LaserJet_P2015_Series
$ lpstat -v
device for HP_LaserJet_P2015_Series: ipp://10.0.1.222:631/printers/HP_LaserJet_P2015_Series

Définir une destination par défaut avec des variables d'environnement

Vous n'êtes pas autorisé à définir votre propre imprimante par défaut sur les systèmes sur lesquels vous n'avez pas de compte administrateur, car la modification des destinations d'impression est considérée comme une tâche privilégiée. Avant que lpr ne fasse référence à CUPS pour une destination, il interroge votre système pour la variable d'environnement PRINTER.

Dans cet exemple, HP_LaserJet_P2015_Series est le nom lisible donné à l'imprimante. Définissez PRINTER sur cette valeur :

$ PRINTER=HP_LaserJet_P2015_Series
$ export PRINTER

Une fois la variable PRINTER définie, vous pouvez imprimer :

$ lpr myfile.pdf

Obtenir une liste des imprimantes connectées

Vous pouvez voir toutes les imprimantes qui acceptent des travaux d'impression et qui sont connectées à votre système avec la commande lpstat :

$ lpstat -a
HP_LaserJet_P2015_Series accepting requests since Sun 1 Aug 2021 10:11:02 PM NZST
r1060 accepting requests since Wed 18 Aug 2021 04:43:57 PM NZST

Impression sur une imprimante arbitraire

Une fois que vous avez ajouté des imprimantes à votre système, et maintenant que vous savez comment les identifier, vous pouvez imprimer sur n'importe laquelle d'entre elles, que vous ayez ou non une destination par défaut définie :

$ lpr -P HP_LaserJet_P2015_Series myfile.txt

Comment les imprimantes sont définies

CUPS dispose d'une interface conviviale accessible via un navigateur Web tel que Firefox. Même s'il utilise un navigateur Web comme interface utilisateur, il s'agit en fait d'un service exécuté localement sur votre ordinateur (un emplacement appelé localhost) sur le port 631. CUPS gère les imprimantes connectées à votre ordinateur et stocke ses configuration dans /etc/cups/printers.conf.

Le fichier printers.conf est constitué de définitions détaillant les périphériques d'impression auxquels votre ordinateur peut accéder. Vous n'êtes pas censé le modifier directement, mais si vous le faites, vous devez d'abord arrêter le démon cupsd.

Une entrée typique ressemble à ceci :

<Printer r1060>
  Info Ricoh 1060
  Location Downstairs
  MakeModel Ricoh Aficio 1060 - CUPS+Gutenprint v5.2.6
  DeviceURI lpd://192.168.4.8
  State Idle
  StateTime 1316011347
  Type 12308
  Filter application/vnd.cups-raw 0 -
  Filter application/vnd.cups-raster 100 rastertogutenprint.5.2
  Accepting Yes
  Shared No
  JobSheets none none
  QuotaPeriod 0
  PageLimit 0
  KLimit 0
  OpPolicy default
  ErrorPolicy stop-printer
</Printer>

Dans cet exemple, le nom de l'imprimante est r1060, un identifiant lisible par l'homme pour un Ricoh Aficio 1060.

L'attribut MakeModel est extrait de la commande lpinfo, qui répertorie tous les pilotes d'imprimante disponibles sur votre système. En supposant que vous sachiez que vous disposez d'un Ricoh Aficio 1060 sur lequel vous souhaitez imprimer, vous devez alors émettre cette commande :

$ lpinfo -m | grep 1060
gutenprint.5.2://brother-hl-1060/expert Brother HL-1060 - CUPS+Gutenprint v5.2.11
gutenprint.5.2://ricoh-afc_1060/expert Ricoh Aficio 1060 - CUPS+Gutenprint v5.2.11

Cette commande répertorie les pilotes pertinents que vous avez installés.

Le MakeModel est la dernière moitié du résultat. Dans cet exemple, il s'agit de Ricoh Aficio 1060 - CUPS+Gutenprint v5.2.11.

L'attribut DeviceURI identifie l'endroit où se trouve l'imprimante sur le réseau (ou l'emplacement physique, tel que le port USB). Dans cet exemple, le DeviceURI est lpd://192.168.4.8 car j'utilise le protocole lpd (démon d'imprimante en ligne) pour envoyer données vers une imprimante en réseau. Sur un autre système, j'ai une HP LaserJet connectée par un câble USB, donc le DeviceURI est DeviceURI hp:/usb/HP_LaserJet_P2015_Series?serial=00CNCJM26429.

Impression depuis le terminal

L'envoi d'un travail à une imprimante est un processus simple, à condition que vous compreniez les périphériques connectés à votre système et comment les identifier. L'impression à partir du terminal est rapide, efficace et facilement scriptée ou réalisée par lots. Essaye le!

Articles connexes: