web-dev-qa-db-fra.com

Comment empêcher CUPS de faire pivoter automatiquement mon PDF?

Sur mon système Ubuntu 16.04 LTS, j'ai une imprimante d'étiquettes Citizen CL-S621Z, avec des étiquettes de 50 x 80 mm (portrait) et une image de 50 x 80 mm PDF que je souhaite imprimer:

enter image description here

Le problème, c’est que CUPS tourne le travail à 270 °, de sorte qu’il ressorte de côté:

enter image description here

Le fichier d'entrée PDF ne comporte pas de rotation de page, comme le révèle pdfinfo:

admin@bukittinggi ~> pdfinfo label.pdf
Creator:        cairo 1.13.1 (http://cairographics.org)
Producer:       cairo 1.13.1 (http://cairographics.org)
Tagged:         no
UserProperties: no
Suspects:       no
Form:           none
JavaScript:     no
Pages:          1
Encrypted:      no
Page size:      141.732 x 226.772 pts
Page rot:       0
File size:      32443 bytes
Optimized:      no
PDF version:    1.5

Ma ligne de commande d'impression est la suivante:

lpr label.pdf

J'ai essayé plusieurs options pour empêcher la rotation automatique des pages, notamment -o 'nopdfAutoRotate', -o portrait, -o landscape et -o orientation-requested=N (pour les valeurs de N comprises entre 0 et 7), et aucun d'entre eux ne semble avoir aucun effet.

Le travail semble passer par pdftopdf puis pdftops dans le graphe de filtre CUPS et, autant que je sache, la rotation se produit lorsque le travail frappe le dernier filtre, après quoi la rotation de page est définie. à 270 °:

~> /usr/sbin/cupsfilter -P test.ppd -m application/vnd.cups-postscript label.pdf  > filtered.ps
~> ps2pdf filtered.ps
~> pdfinfo filtered.pdf
[...]
Page size:      142 x 227 pts
Page rot:       270

/usr/lib/cups/filter/pdftops provient de cups-filters-core-drivers version 1.8.3-2ubuntu3. Curieusement, le problème ne se produit pas sur Raspbian, qui a cups-filters-core-drivers version 1.0.61-5+deb8u3.


Mise à jour: j'ai pu obtenir l'orientation souhaitée en modifiant soigneusement le fichier PPD afin qu'il corresponde exactement aux dimensions de l'étiquette:

*DefaultPageSize: w142h227
*PageSize w142h227/1.97x3.15": "<</PageSize[142 227]/ImagingBBox null>>setpagedevice"
*PageRegion w142h227/1.97x3.15": "<</PageSize[142 227]/ImagingBBox null>>setpagedevice"
*ImageableArea w142h227/1.97x3.15": "0 0 142 227"
*PaperDimension w142h227/1.97x3.15": "142 227"

Merci à Michael de l'équipe CUPS.

7
crishoj

Nous avons eu le même problème avec une imprimante Zebra Z4MPLUS utilisant le fichier PPD de Zebra. Le fichier PPD avait une taille d’étiquette de 8,00x4,00 ", mais cela ne fonctionnait pas pour nous. L’utilisation de Custom 4x8in ne fonctionnait pas non plus. Nous devions créer une taille d’étiquette de 4,00x8,00" dans le fichier PPD, puis la sélectionner dans Tasses. Nous avons fait cela en éditant dans le fichier PPD une taille d’étiquette de 4.00x13.00 "dont nous savions que nous n’aurions pas besoin. Voici un diff original.ppd edited.ppd

40c40
< *DefaultPageSize: Custom.4x8in
---
> *DefaultPageSize: w288h576
80c80
< *PageSize w288h936/4.00x13.00": "<</PageSize[288 936]/ImagingBBox null>>setpagedevice"
---
> *PageSize w288h576/4.00x8.00": "<</PageSize[288 576]/ImagingBBox null>>setpagedevice"
98c98
< *DefaultPageRegion: Custom.4x8in
---
> *DefaultPageRegion: w288h576
138c138
< *PageRegion w288h936/4.00x13.00": "<</PageSize[288 936]/ImagingBBox null>>setpagedevice"
---
> *PageRegion w288h576/4.00x8.00": "<</PageSize[288 576]/ImagingBBox null>>setpagedevice"
154c154
< *DefaultImageableArea: Custom.4x8in
---
> *DefaultImageableArea: w288h576
194c194
< *ImageableArea w288h936/4.00x13.00": "0.00 0.00 288.00 936.00"
---
> *ImageableArea w288h576/4.00x8.00": "0.00 0.00 288.00 576.00"
209c209
< *DefaultPaperDimension: Custom.4x8in
---
> *DefaultPaperDimension: w288h576
249c249
< *PaperDimension w288h936/4.00x13.00": "288.00 936.00"
---
> *PaperDimension w288h576/4.00x8.00": "288.00 576.00"
7
timcu