Nous allons voir dans ce billet comment installer une imprimante sur une machine distante, ne possédant aucune interface graphique, puis comment imprimer un document en ligne de commande .
Sans entrer dans les détails du système d'impression linux, nous allons survoler les principaux outils tels que CUPS, lpr, lpq, lpstat ...

Installation des paquets

COmmençons par installer les paquets nous fournissant les outils necessaires

apt-get install cups cups-bsd

Interface web de CUPS

Cups permet de configurer ( ajouter/modifier/supprimer ) les imprimantes via une interface web ... ( on ne va pas s'en priver ! )

Seulement, avant de pouvoir s'y connecter ( à distance ) nous allons devoir autoriser les connections extérieurs .. ( tout du moins le temps de la configuration )

vim /etc/cups/cupsd.conf

Voici les modifications à apporter

Changer

Listen localhost:631

par

Listen *:631

Ajouter la ligne Allow From All dans les blocs suivant

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow From All
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow From All
</Location>

Puis redémarrer cups

service cups restart

Il ne vous reste plus qu'à vous rendre sur l'interface web :

http://ipduserveur:631

Selection_103.png

Ajouter une imprimante

Pour ajouter une imprimante, il suffit de se laisser guider par l'interface web de CUPS, ayant une imprimante réseau compatible postscript, je vais utiliser les pilotes génériques.
Mais vous pouvez trés bien donner le fichier PPD correspondant à votre imprimante .

Allons dans l'onglet Administration > Add Printer

Un mot de passe vous est demandé, utiliser le mot de passe root, ou créez un compte spécifique grâce à la commande lppasswd

root@vm2:~# lppasswd -a cdsl
Entrez le nouveau mot de passe :
Confirmez le nouveau mot de passe :

Cups va alors lister toutes les imprimantes réseau qu'il a trouvé, ou vous proposer d'entrer l'adresse vous même

Selection_104.png

Personnellement, je vais entrer moi même l'ip de mon imprimante ( adresse ldp )

Selection_105.png

Le pilote choisis sera le suivant ( pour mon imprimante laser couleur Konica Bizhub C253 ):

Generic PCL 5c Printer Foomatic/hpijs-pcl5c

Nous en avons fini avec l'interface web ...

En ligne de commande

Vérifions la présence de notre imprimante fraichement installée

root@vm2:~# lpstat -tvH
scheduler is running
no system default destination
device for Konica_Etage: lpd://10.0.0.4/print
Konica_Etage accepting requests since jeu. 07 nov. 2013 16:25:04 CET
printer Konica_Etage is idle.  enabled since jeu. 07 nov. 2013 16:25:04 CET

Le nom Konica_Etage sera le nom à utiliser dans les commandes et scripts pour imprimer via celle-ci.

Par exemple, pour vérifier sa file d'impression

root@vm2:~# lpq -PKonica_Etage
Konica_Etage is ready
no entries

Il ne nous reste plus qu'à imprimer ..
Pour imprimer un document, nous allons utiliser la commande lpr comme ceci

lpr -h -PKonica_Etage -#1 -o media=A4 -o scaling=100 monfichieraimprimer.pdf
  • -h pour désactiver l'impression de la bannière
  • -PKonica_Etage Désigne l'imprimante à utiliser
  • -#1 Permet de spécifier le nombre de copie(s) à sortir ( ici 1 copie )
  • -o media=A4 Spécifie le format de papier à utiliser au niveau de l'imprimante
  • -o scaling=100 Demande l'utilisation de 100% de la zone d'impression en respectant le ratio

Et en fin de ligne, le fichier à imprimer !

Conclusion

Je pense que l'objectif de cet article est rempli, vous avez la possibilité d'imprimer des documents ( pdf, ps, images .. ) depuis votre serveur en ligne de commande .

N'hésitez pas à me faire des retours .

Ch.