OVH Cloud OVH Cloud

Pbm Impression avec CUPS de fichiers PCL

14 réponses
Avatar
Bill
Bonjour à tous,

Voilà la situation. Nous avons des soucis dans l'impression de documents
qui arrivent sur le serveur linux au format PCL6
Le serveur est configuré pour taper sur un boitier Jetdirect sur une
imprimante HP Laserjet

C'est CUPS qui gere le tout sur le serveur Linux.

Tout semble correctement configuré puisque l'on peut imprimer sans pbm
un fichier text simple. (lp -d "imprim" fichier_text)

Par contre, dès que l'on tente de sortir un fichier PCL6 (qui d ailleurs
fait planter le terminal en faisant un "more fichierPCL6" ) rien ne sort
sur l imprimante.


Voici un extrait de /var/log/cups/error_log lors d'une tentative
d'impression
.....
D [01/Jun/2004:13:06:35 +0200] hpgl2ps: Bad PE character '0'!
W [01/Jun/2004:13:06:35 +0200] ignoring illegal PE char '...
W [01/Jun/2004:13:06:35 +0200] ignoring illegal PE char '('...
W [01/Jun/2004:13:06:35 +0200] ignoring illegal PE char '0'...
D [01/Jun/2004:13:06:35 +0200] hpgl2ps: Bad PE character '!
D [01/Jun/2004:13:06:35 +0200] hpgl2ps: Bad PE character '('!
D [01/Jun/2004:13:06:35 +0200] hpgl2ps: Bad PE character '1'!
.......
D [01/Jun/2004:13:06:35 +0200] hpgl2ps: Bad PE character '0'!
W [01/Jun/2004:13:06:35 +0200] ignoring illegal PE char '...
W [01/Jun/2004:13:06:35 +0200] ignoring illegal PE char '('...
W [01/Jun/2004:13:06:35 +0200] ignoring illegal PE char '0'...
D [01/Jun/2004:13:06:36 +0200] 0 %%Trailer
D [01/Jun/2004:13:06:36 +0200] Saw Trailer!
D [01/Jun/2004:13:06:36 +0200] Saw EOF!
D [01/Jun/2004:13:06:36 +0200] UpdateJob: job 65, file 0 is complete.
D [01/Jun/2004:13:06:36 +0200] CancelJob: id = 65
D [01/Jun/2004:13:06:36 +0200] StopJob: id = 65, force = 0
D [01/Jun/2004:13:06:36 +0200] StopJob: printer state is 3


J'ai tenté de modifier le fichier PPD utilisé rien n y fait.
Pour etre honnete je decouvre un peu CUPS.

J'ai l impression que cups n arrive pas a transcrire le fichier PCL6 en
langage correspondant à l imprimante utilisée.
Je dirais meme plus que cups semble ne rien comprendre a ce format !
("ignoring illegal PE char '('..." )
Suis je dans le vrai ?
Quelqu'un aurait il une piste pour m aider ?



Merci de votre aide.

4 réponses

1 2
Avatar
g.patel
On Thu, 03 Jun 2004 12:19:07 +0200, Bill
wrote:

Le pbm semble vraiment venir du filtre "hpgltops" qui plante mechamment
face a ces fichiers PCL6 .
(...)

Autre chose, lorsque j'utilise la commande " lpr -l fichierPCL6 "
On passe alors a travers les filtres et l immprimte recoit (pour une
fois) des choses et les imprime . Par contre ca ne veut rien dire (pbm
de format ? peut on y remedier ? )


sur un système configuré pour cups, lpr est un utilitaire Cups et tout
passe par Cups.
Je pense que le filtre hpgltops est bien destiné à du HPGL (le
language vectoriel) et ne reconnait pas du Pcl. Je crois que c'est
la seule explication aux messages du genre 'Bad PE'.

Donc la seule solution est de toujours passer par le format Raw.
En supprimant le filtre hpgltops et en relançant Cups, le fichier
devrait passer en mode Raw - il ne devrait logiquement pas etre
reconnu pour autre chose. Je ne suis pas certain qu'après avoir
configuré le mode Raw, le filtre hpgltops était désactivé en fait.

Après si l'imprimante ne l'imprime pas, c'est qu'il y a un
problème entre le logiciel et le modèle d'imprimante.

Le format PCL6 semble etre pourtant correct car ce meme fichier est
imprimé parfaitement lorsqu'on passe par un Spool Unix (configuré avec
un outil HP : HPPI je crois)


Peut-etre que ce spool est configuré pour ajouter des
séquences de commande spécifiques ?

Gérard Patel

Avatar
Bill


Le pbm semble vraiment venir du filtre "hpgltops" qui plante mechamment
face a ces fichiers PCL6 .
(...)



Je pense que le filtre hpgltops est bien destiné à du HPGL (le
language vectoriel) et ne reconnait pas du Pcl. Je crois que c'est
la seule explication aux messages du genre 'Bad PE'.



Possible qu'il ne reconnaisse pas le PCL .
Mais pourquoi donc n y aurait il pas de filtre reconnaissant le PCL (6
surtout) sur cette belle usine qu'est CUPS ??

D'ailleur je dois bien avouer etre completement perdu (et le mot est
faible) dans cette véritable jungle à formats ...

Le PCL 5 ... le PCL XL (le 6 ?) ... le PJL ... le PCL ... le HPGL ...
Bon sang... et le tout rien que pour HP .
Est ce la meme chose ? est ce que l un est compris dans l autre ?
Est ce qu'une imprimante PJL est cencé comprend le PCL5 ? le PCL6 ?



Donc la seule solution est de toujours passer par le format Raw.
En supprimant le filtre hpgltops et en relançant Cups, le fichier
devrait passer en mode Raw - il ne devrait logiquement pas etre
reconnu pour autre chose. Je ne suis pas certain qu'après avoir
configuré le mode Raw, le filtre hpgltops était désactivé en fait.



Ok je peux tester ceci.
Mais comment dois je m y prendre ?

Dois je commenter la ligne dans mime.convs :
application/vnd.hp-HPGL application/postscript 66 hpgltops

Ou alors plutot celle dans mime.types :
application/vnd.hp-HPGL hpgl string(0,<1B>&)
string(0,<1B>E<1B>%0B)
string(0,<1B>%-1B) string(0,<201B>)
string(0,BP;) string(0,IN;) string(0,DF;)
string(0,BPINPS;)
(contains(0,128,<1B>%-12345X) +
(contains(9,512,"LANGUAGE=HPGL")
contains(9,512,"LANGUAGE = HPGL")))





Après si l'imprimante ne l'imprime pas, c'est qu'il y a un
problème entre le logiciel et le modèle d'imprimante.


En tout cas, un lpr -l (...) pour eviter le filtre ne donne rien du tout.
Effectivement des choses sortent de l imprimante mais cela ne veut rien
dire.

Soit dit en passant il s agit (entre autre, car il n y a pas qu une
imprimante sur le site) d'une Laserjet 1300 .
Bon, il parait qu'elle comprend le PJL. Super... mais cela signifie
qu'elle comprend le PCL6 ? le HPGL ? (ces formats me donnent la migraine)



Le format PCL6 semble etre pourtant correct car ce meme fichier est
imprimé parfaitement lorsqu'on passe par un Spool Unix (configuré avec
un outil HP : HPPI je crois)



Peut-etre que ce spool est configuré pour ajouter des
séquences de commande spécifiques ?



Bonne question et aucune idée la dessus.
Logiciel HP de configuration de spool HPPI (fournit avec le serveur HP
il y a bien longtemps) et le PCL6 n a jamais posé de souci la dessus.

Je n ai rien trouvé concernant HPPI et linux.



Si rien n avance avec cups, je vais tenter en dernier recours de degager
CUPS et d utiliser LPRng avec son filtre IFHP .
Dans IFHP il y a HP :-p ... peut etre aurai je plus de chance avec....


Avatar
g.patel
On Fri, 04 Jun 2004 12:08:14 +0200, Bill wrote:

Possible qu'il ne reconnaisse pas le PCL .
Mais pourquoi donc n y aurait il pas de filtre reconnaissant le PCL (6
surtout) sur cette belle usine qu'est CUPS ??


parce qu'il y a relativement peu de logiciels d'origine Unix qui
génèrent directement du Pcl ? La tradition est plutot portée sur le
Postscript.
Par contre Cups sait très bien générer du Pcl - ce qui est plus
classique.

D'ailleur je dois bien avouer etre completement perdu (et le mot est
faible) dans cette véritable jungle à formats ...

Le PCL 5 ... le PCL XL (le 6 ?) ... le PJL ... le PCL ... le HPGL ...
Bon sang... et le tout rien que pour HP .
Est ce la meme chose ? est ce que l un est compris dans l autre ?
Est ce qu'une imprimante PJL est cencé comprend le PCL5 ? le PCL6 ?


Pcl = printer control language : c'est le language d'impression normal
de HP
Pcl XL = Pcl 6, c'est à dire la version 6 du Pcl
Pjl = printer job language : c'est le language de controle des
imprimantes HP; en gros ça sert à piloter le panneau de controle
(ou ce qui était le panneau de controle, qui tend à disparaitre)
Le Pjl sert en particulier à commuter le mode Pcl/Postscript des
imprimantes HP qui ont le Postscript. Le Pjl ne comprend aucune
commande d'impression proprement dite (à part les pages de test).
HPGL = language vectoriel des traceurs HP; une grande partie du Hpgl
est intégrée dans le Pcl à partir (au moins) du Pcl 5.

(supprimer filtre hpgl)

Ou alors plutot celle dans mime.types :
application/vnd.hp-HPGL hpgl string(0,<1B>&)
string(0,<1B>E<1B>%0B)
string(0,<1B>%-1B) string(0,<201B>)
string(0,BP;) string(0,IN;) string(0,DF;)
string(0,BPINPS;)
(contains(0,128,<1B>%-12345X) +
(contains(9,512,"LANGUAGE=HPGL")
contains(9,512,"LANGUAGE = HPGL")))


ça devrait réaliser cette suppression.

Gérard Patel

Avatar
Bill

parce qu'il y a relativement peu de logiciels d'origine Unix qui
génèrent directement du Pcl ? La tradition est plutot portée sur le
Postscript.
Par contre Cups sait très bien générer du Pcl - ce qui est plus
classique.
....


Pcl = printer control language : c'est le language d'impression normal
de HP
Pcl XL = Pcl 6, c'est à dire la version 6 du Pcl
Pjl = printer job language : c'est le language de controle des
imprimantes HP; en gros ça sert à piloter le panneau de controle
(ou ce qui était le panneau de controle, qui tend à disparaitre)
Le Pjl sert en particulier à commuter le mode Pcl/Postscript des
imprimantes HP qui ont le Postscript. Le Pjl ne comprend aucune
commande d'impression proprement dite (à part les pages de test).
HPGL = language vectoriel des traceurs HP; une grande partie du Hpgl
est intégrée dans le Pcl à partir (au moins) du Pcl 5.

(supprimer filtre hpgl)



Merci pour toutes ces précisions :o)

Bon et bien a mon tour si ca peut faire avancer le schmilblick.

Tout ce que j'ai pu essayer avec CUPS n'a rien donné :
lp -l (pour eviter les filtres)
modifs des fichiers mime.types et mime.convs
Mise a jours CUPS ... et autre foomatics
tests avec tous les ppd imaginables
et j en oublie.


Ce qui est certain est que le pbm vient du filtre HPGLTOPS qui plante
lamentablement face a ces fichiers PCL6 . (hormis ceci CUPS fonctionne
a merveille bien sur)


J'ai migré tout le systeme d'impression sur LPRng associé au filtre IFHP
avec l'outil lprngtool .
Et là...... tout fonctionne sans aucun soucis !!

C'est l'unique solution que j'ai trouvé.

Je me demande honnetement si je n aurai pas découvert un bug ici tout
simplement....

1 2