ROYAUME DU MAROC
Office de la Formation Professionnelle et de la Promotion du Travail
Configuration de l’imprimante sous Gnu/Linux
DIRECTION RECHERCHE ET INGENIERIE DE FORMATION SECTEUR NTIC
ROYAUME DU MAROC
Office de la Formation Professionnelle et de la Promotion du Travail
DIRECTION RECHERCHE ET INGENIERIE DE FORMATION SECTEUR NTIC
Configuration de l’imprimante sous Gnu/Linux
Sommaire
1. Concepts de base de l'impression sous Unix...........................................2 2. Le système d'impression LPRng............................................................3 2.1. Le mécanisme des filtres APSFILTER................................................3 2.2. Installation des filtres et configuration des files d'impression...............5 2.3. Commandes d'impression...............................................................5 2.4. Description du fichier /etc/printcap..................................................5 3. Le système d'impression CUPS............................................................5 3.1. Le mécanisme des filtres de CUPS...................................................5 3.2. Configuration d'une imprimante CUPS..............................................5 3.3. Les fichiers de configuration de CUPS...............................................5
OFPPT @
Document
Millésime
Page
Configuration de l’imprimante sous Gnu/Linux
juillet 07
1-8
Configuration de l’imprimante sous Gnu/Linux
Il existe deux systèmes d'impression concurrents sous Linux : LPRng (« Line Printer Next Generation ») et CUPS (« Common Unix Printing System »). LPRng est une évolution du système initial, LPR, qui est devenu très vite obsolète en raison de l'évolution des technologies d'impression. En effet, celui-ci a été conçu à l'époque où les imprimantes étaient encore des imprimantes matricielles et ne pouvaient imprimer qu'en noir et blanc. CUPS, quant à lui, a été créé pour fournir une infrastructure complètement nouvelle et pour s'affranchir des limitations de LPRng. C'est donc la solution d'avenir, mais il n'est pas rare de trouver encore des systèmes basés sur LPRng. D'autre part, la compatibilité au niveau des commandes d'impression est assurée par CUPS, ce qui fait que la présentation de LPRng n'est pas superflue. Quelle que soit la technologie d'impression utilisée, l'imprimante reste généralement accessible par un port local. En effet, la plupart des imprimantes sont connectées sur le port parallèle ou sur un port USB (les imprimantes professionnelles mises à part, celles-ci disposant généralement d'une interface réseau). Nous supposerons donc dans la suite de ce document que l'imprimante est connectée soit sur le port parallèle (accessible via le fichier spécial de périphérique /dev/lp0), soit sur un port USB (accessible via le fichier /dev/usb/lp0).
1. Concepts de base de l'impression sous Unix La principale difficulté lors de l'impression d'un document est de le convertir de son propre format de fichier vers un format de données que l'imprimante est capable de comprendre. Le problème ici est qu'il existe une multitude de formats de documents et une multitude d'applications qui peuvent les générer, d'une part, et, d'autre part, que chaque fabricant d'imprimantes a développé ses propres jeux de commandes pour ses imprimantes. Il existe bien un standard pour les imprimantes laser avec le langage PostScript développé par Adobe, mais ce langage n'est pas utilisable avec la majorité des imprimantes à jet d'encre. De fait, la plupart des applications sont capables de générer un fichier PostScript lors d'une impression, mais ce fichier doit encore être traduit dans le langage spécifique de l'imprimante effectivement installée. Il est donc toujours possible d'envoyer directement un fichier à imprimer à l'imprimante, en le recopiant directement sur le fichier spécial de périphérique de l'imprimante, mais cette technique suppose que ce fichier soit généré directement dans le langage de l'imprimante. Ceci ne peut que compliquer les applications qui permettent l'impression, et les empêcher de fonctionner ultérieurement avec de nouvelles imprimantes dont le langage leur sera inconnu. Cette technique ne convient donc, en général, que pour des fichiers textes simples. De plus, cette solution ne convient pas dans un système multitâche et multi-utilisateur, puisque un seul programme seulement peut accéder à
OFPPT @
Document
Millésime
Page
Configuration de l’imprimante sous Gnu/Linux
juillet 07
2-8
Configuration de l’imprimante sous Gnu/Linux
l'imprimante à un instant donné. Les systèmes d'impression ont donc pour principal but de résoudre ces problèmes. La multiplicité des formats de fichiers et des langages d'imprimante est prise en charge par tout un jeu de programmes de conversion que l'on appelle les filtres. Les filtres ne sont en fait rien d'autre que des programmes qui reçoivent un fichier en entrée et qui fournissent la traduction de ce fichier dans un autre format en sortie. Les systèmes d'impression LPRNG et CUPS fournissent un certains nombres de filtres, qui peuvent être agencés afin de permettre l'impression de n'importe quel fichier sur l'importe quelle imprimante. Enfin, en ce qui concerne le partage des ressources d'impression, les systèmes d'impression utilisent généralement un mécanisme de files d'attente (« spool » en anglais). Tous les travaux d'impression soumis sont placés dans une file d'attente, et attendent leur tour pour être envoyés à l'imprimante associée à cette file. Une fois que l'impression est terminée, les travaux sont supprimés de la file. Ainsi, un seul programme accède à l'imprimante : le sous-système d'impression. Notez qu'il est généralement possible de définir plusieurs files d'attentes sur une même imprimante, selon la nature du travail à effectuer. Par exemple, une file peut se charger des documents textes, et une autre des documents graphiques en couleur. Bien entendu, le sous-système d'impression contrôle tous les accès à l'imprimante et assure qu'un seul document est en cours d'impression à chaque instant.
2. Le système d'impression LPRng Le système d'impression LPRng est constitué d'un démon nommé « lpd » et d'un jeu de commandes permettant de communiquer avec lui pour soumettre les travaux d'impression, visualiser ceux qui sont en attente ou en cours d'impression et les annuler.
2.1. Le mécanisme des filtres APSFILTER Sous Linux, le mécanisme de filtres de LPRng est généralement APSFILTER. Ce mécanisme est profondément orienté vers le langage de description de pages PostScript, initialement inventé par Adobe et que nombre d'imprimantes laser comprennent. En fait, il s'agit d'un véritable langage de programmation, qui permet de programmer les périphériques dont la vocation est d'afficher ou d'imprimer des documents. Techniquement parlant, PostScript permet d'obtenir une qualité d'impression irréprochable, car c'est l'imprimante elle-même qui « dessine » la page à imprimer. APSFILTER utilise donc un premier jeu de filtres pour convertir les fichiers à imprimer en PostScript s'ils ne sont pas déjà dans ce format. Le langage PostScript apparaît donc comme le langage d'impression universel, que toutes les imprimantes sont supposées comprendre... Le problème, c'est que ce n'est pas le cas. En particulier, les imprimantes à jet d'encre ne comprennent généralement pas le PostScript. Aussi APSFILTER utilise-
OFPPT @
Document
Millésime
Page
Configuration de l’imprimante sous Gnu/Linux
juillet 07
3-8
Configuration de l’imprimante sous Gnu/Linux
t-il un second jeu de filtres, capables de convertir le PostScript dans le langage graphique de l'imprimante (si l'imprimante n'est pas une imprimante PostScript, bien entendu). APSFILTER utilise pour cela un « interpréteur PostScript ». Un interpréteur PostScript est un programme capable de comprendre les fichiers PostScript et de les convertir dans le format compris par l'imprimante. L'interpréteur couramment utilisé sous Linux est GhostScript, parce que c'est un logiciel libre (cependant, la version courante est toujours commerciale). Il est également capable d'afficher les fichiers PostScript sous XWindow, et de gérer la plupart des imprimantes du marché. L'avantage de cette technique est que toutes les imprimantes apparaissent comme étant des imprimantes PostScript pour les programmes désirant imprimer. Ainsi, leur programmation est beaucoup plus simple, puisqu'ils n'ont qu'un seul format à gérer. Bon nombre d'applications génèrent directement des fichiers PostScript, qui sont donc envoyés directement à GhostScript pour l'impression définitive.
Figure 2-1. Filtres d'impression et imprimantes PostScript
Comme on le voit, avec APSFILTER, le langage d'impression universel est le langage PostScript. Bien entendu, cela est idéal si l'on dispose effectivement d'une imprimante PostScript, mais même dans le cas contraire, les impressions se font parfaitement grâce à GhostScript.
OFPPT @
Document
Millésime
Page
Configuration de l’imprimante sous Gnu/Linux
juillet 07
4-8
Configuration de l’imprimante sous Gnu/Linux
2.2. Installation des filtres et configuration des files d'impression Les distributions modernes fournissent toutes un outil permettant d'effectuer la configuration du sous-système d'impression. Il est évidemment recommandé d'utiliser ces outils, car le résultat est assuré et la vie en est d'autant plus facile. De plus, les distributions peuvent fournir des filtres complémentaires que seuls ces outils connaissent et sont capables d'installer. Si le jeu de filtres utilisé de votre distribution est APSFILTER, vous pourrez installer votre imprimante manuellement en exécutant le programme SETUP du répertoire /usr/share/apsfilter/. Ce programme est réellement affreux à utiliser car il s'agit en réalité d'un script, mais il effectue correctement son travail. Dès son démarrage, il vous demande d'accepter la licence logicielle (la licence GPL avec une forte invitation à envoyer une carte postale à l'auteur, qui les collectionne). La question suivante est donc si vous désirez obtenir l'adresse postale de l'auteur. Une fois ces deux questions passées, le programme d'installation commence réellement. Le programme vous demande de confirmer les droits sur le répertoire des fichiers d'impression en cours, puis, si vous le faites effectivement, si vous désirez compléter le fichier de configuration de LPRNG /etc/printcap ou en créer un complètement nouveau. Vient ensuite le menu de configuration des imprimantes :
OFPPT @
Document
Millésime
Page
Configuration de l’imprimante sous Gnu/Linux
juillet 07
5-8
Configuration de l’imprimante sous Gnu/Linux
OFPPT @
Document
Millésime
Page
Configuration de l’imprimante sous Gnu/Linux
juillet 07
6-8