# Chapitre 3. Configurer KLJetTool

Certaines distributions de Linux contiennent un système d'impression qui ne respecte pas le format des fichiers PJL générés par KLJetTool, et qui tente de les transformer en utilisant ses propres filtres. Ce comportement provoquera des dysfonctionnements dans KLJetTool.

Cette partie décrit les étapes nécessaires à la configuration de KLJetTool sur un système pré-RedHat 5.0 (KLJetTool devrait fonctionner parfaitement dès l'installation sur un système RedHat Linux 5.0). J'imagine que ces étapes, décrites ci-après, seront également nécessaires sur d'autres systèmes. Quoi qu'il en soit, ce ne sont pas des étapes difficiles à exécuter. Elles ont pour unique but de s'assurer que le système d'impression envoie bien des fichier PJL non modifiés à l'imprimante.

Un système RedHat Linux ne reconnaît pas les fichiers PJL par défaut, et essaie d'y apporter des modifications au lieu de l'envoyer à l'imprimante sans y toucher, ce qui nous force à intervenir à ce point. Avant d'effectuer ces modifications à votre système, veuillez vous assurer que KLJetTool ne fonctionne réellement pas. La distribution RedHat ainsi que d'autres peuvent tout-à-fait avoir modifié le sous-système d'impression au moment où vous lisez ces lignes.

Selon moi, les autres distributions possédant un système d'impression d'un niveau de sophistication comparable à celui de RedHat auront probablement également besoin de ces modifications pour pouvoir traiter des fichiers PJL (Printer Job Language) et les envoyer correctement à l'imprimante.

Sur un système RedHat, le script `/var/spool/lpd/lp/filter` est appelé depuis `/etc/printcap`, chaque fois qu'un fichier est imprimé en utilisant la commande 'lpr'. Le filtre lance le programme 'file' sur le fichier à imprimer, et 'file' indique au script 'filter' de quel type de document il s'agit. Ensuite, selon le type de document, l'application d'impression correspondante est lancée afin de produire les données dans un format compréhensible par l'imprimante. Le programme 'file' utilise le fichier `/etc/magic` pour déterminer le type du document qui lui est soumis (c'est-à-dire PostScript, dvi, texte etc...)

Par exemple, si j'imprime un document PostScript, myfile.ps, la commande 'file' rapporte au script 'filter' qu'il s'agit d'un document de type PostScript et 'filter' lancera tout d'abord 'ghostscript' pour convertir myfile.ps en langage PCL 5, un langage compris par ma LaserJet, avant d'envoyer le fichier à l'imprimante.

Par malheur, un système RedHat ne reconnaît pas un fichier PJL et essaie de faire des choses désagréables avec le fichier au lieu de l'envoyer directement à l'imprimante.

Afin de faire fonctionner KLJetTool sur un système RedHat, nous avons tout simplement besoin de faire deux choses :

- ajouter une ligne dans le fichier `/etc/magic` afin que le programme 'file' reconnaisse enfin un fichier PJL comme... un fichier PJL. Ajoutez simplement les deux lignes suivantes à votre fichier /etc/magic :

       # HP Printer Job Language, Bernd Wuebben (wuebben@math.cornell.edu)
       0	string		\033%-12345X	 HP PJL printer commands

- dire au script /var/spool/lpd/lp/filter comment traîter un fichier PJL. Cela peut être fait en ajoutant les deux lignes suivantes au script 'filter' :

          *pjl* )
                                                     startpnt="INPUT-to-prdata";;

  Si vous examinez le script filter, l'endroit où il faudra ajouter ces lignes vous apparaîtra clairement (environ au niveau de la ligne 220 dans la version que je possède). Ces lignes informent simplement le script de laisser un fichier PJL intact et de l'envoyer directement à l'imprimante.

Je joins une copie de mon fichier filter, ainsi que de mon /etc/magic. Vous pouvez les utiliser si vous avez du mal à réaliser les modifications présentées ci-dessus. Vous pouvez trouver ces deux fichiers dans le répertoire de la documentation de KLJetTool.

Je désire profondément recevoir des instructions sur les modifications système à apporter afin de faire fonctionner correctement KLJetTool sur des plateformes autres que Linux RedHat utilisant un système d'impression élaboré.