Print ! Don't Queue !
Un article de Projet de documentation fug-fr .
Avertissement: Cette page s'appuie sur des notes prises au fil de l'installation sur mes systèmes et elle contient donc sûrement des erreurs et/ou omissions. Prenez-la donc pour ce qu'elle est: un guide pour vous donner envie de découvrir ce système d'impression et quelques éléments pour comprendre sa configuration.
La lecture de la documentation des divers éléments reste indispensable. Autrement dit: ce n'est pas du "clef en main" (à part si vous êtes dans la même configuration que moi ;-) soit: imprimante HP Laserjet 6P sur le port parallèle d'un PC sous DragonFly 1.6 et client LAN sous DFly également)
Sommaire |
[modifier] Quoi qu'est-ce donc ? Et pourquoi, d'abord ?
Je me suis retrouvé dans le besoin de choisir un système d'impression. Je n'avais pas envie de revivre l'expérience CUPS (les goûts et les couleurs...) et suis tombé sur PDQ.
Pour les points forts et inconvénients éventuels de la chose, jetez un oeil à la page du projet.
[modifier] Droit au but
J'installe PDQ sur DragonFly, ce qui implique que les applications seront installées par pkgsrc.
Malgré tout, on doit pouvoir s'en tirer sans difficulté sur FreeBSD, puisque les Ports disposent de tout le nécessaire.
Voici les ressources qui m'ont été les plus utiles:
- le Printing HOWTO
- la base de données sur les pilotes d'imprimantes de LinuxPrinting.org
- et surtout la documentation d'OpenPrinting
[modifier] Le serveur
[modifier] Paramètres globaux de pkgsrc
On va modifier notre mk.conf (normalement, sous /usr/pkg/etc/, ou encore dans /etc/) pour fixer deux petites choses.
- Taille de papier par défaut fixée à A4
- Pas de CUPS, merci: les applications qui proposeraient une option cups devront faire sans:
PAPERSIZE = A4 PKG_DEFAULT_OPTIONS += -cups
[modifier] Logiciels nécessaires
- print/{a2ps,enscript,mpage} pour convertir du format texte vers Postscript (voire plus dans le cas d' a2ps). Un seul serait nécessaire, mais je n'ai pas encore fait mon choix :-) On peut tester ce qui convient le mieux, d'ailleurs, en touchant à /usr/pkg/etc/foomatic/filter.conf.
- print/hpijs (recommandé par LinuxPrinting) qui assurera la traduction de Postscript vers le langage reconnu par l'imprimante (PCL)
- un ghostscript (j'ai choisi print/ghostscript-esp)
- print/foomatic-filters
- et enfin wip/{x,}pdq.
[modifier] Configuration minimale de LPD
On va créer une imprimante en mode brut (pas de transformation apportée au flux de données à imprimer). La seule différence par rapport à l'entrée proposée en guise d'exemple dans /etc/printcap est l'ajout d'un 'ff' nul pour éviter une page blanche en trop après chaque travail. L'entrée est donc:
line printer:\
:sh:ff=:\
:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
Assurez-vous que le spool directory existe et que la destination est correcte (port parallèle n°1 dans ce cas), puis listez les noms des machines qui pourront imprimer sur ce serveur dans /etc/hosts.lpd.
Finalement, autorisez le lancement de LPD en glissant un lpd_enable="YES" dans /etc/rc.conf et démarrez-le à la main pour cette fois-ci avec /etc/rc.d/lpd start.
[modifier] Configuration de PDQ
[modifier] Générer un fichier de définition de pilote
On utilise pour ça le sympathique script foomatic-rip provenant des foomatic-filters:
( cd /usr/pkg/share/ppd && gzip -dc HP-LaserJet_6P-hpijs.ppd.gz > HP-LaserJet_6P-hpijs.ppd ) foomatic-rip --ppd /usr/pkg/share/ppd/HP-LaserJet_6P-hpijs.ppd --genpdq \ ~/HP-LaserJet_6P-hpijs.pdq && mv HP-LaserJet_6P-hpijs.pdq /usr/pkg/share/pdq/drivers/misc/
Note: il a fallu que je corrige légérement le fichier généré. L'expression filetype_regx "" entraine une erreur dans regcomp(3) (spécifique à DragonFly ?); il faut changer cela en filetype_regx ".*"
[modifier] Utiliser xpdq pour créer l'imprimante du point de vue de PDQ
Lancez donc xpdq en étant root (ou si vous préférez en utilisateur lambda, mais la configuration ne sera effective que pour l'identité en cours - ~/.printrc vs /usr/pkg/etc/pdq/printrc) et répondez aux questions de l'assistant.
Après le choix du pilote et le paramétrage de la taille de page (que l'on peut retoucher plus tard également), reste à définir l'interface à utiliser (c-a-d le "transport" pour atteindre l'imprimante): celle-ci sera de type BSD-LPD, avec "Remote lpd host" fixé à localhost et "Remote lpd queue" à lp.
[modifier] Le client
Toutes les étapes ci-dessus, à l'exception de la phase relative au LPD local, sont à reproduire sur le(s) client(s).
Ce qui peut paraitre fastidieux au premier abord est en fait grandement facilité par le fait que les deux seuls fichiers de configuration (définition de pilote et paramétres globaux de PDQ) sont réutilisables sur les clients avec une légére modification (interface). L'installation des logiciels est, elle, suffisamment triviale.

