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