Forum Linux.debian/ubuntu Impression de PDF en A4 - Y'a t'il un gourou dans la salle ?

Posté par  .
Étiquettes : aucune
0
8
mar.
2007

Bonjour,


Je m'arrache les cheveux depuis plusieurs mois pour comprendre pourquoi l'impression de PDF se fait systématiquement en Letter sur mon imprimante.


Pour ce que j'en comprends, cups convertit les PDF en PS via l'utilitaire pdftops. Voici un extrait du PS produit :

...

/pdfSetup {
3 1 roll 2 array astore
/setpagedevice where {
pop 3 dict begin
/PageSize exch def
/ImagingBBox null def
/Policies 1 dict dup begin /PageSize 3 def end def
{ /Duplex true def } if
currentdict end setpagedevice
} {
pop pop
} ifelse
} def
...
595 842 true pdfSetup
...


Si dans le PS ainsi généré je remplace la dernière ligne ci-dessus par

/PageSize 595 842
alors l'impression passe bien en A4. Sinon j'ai invariablement du Letter.


Les symptômes sont les mêmes quelque soit le package me fournissant pdftops (xpdf-utils ou poppler-utils).


La conversion avec pdf2ps donne, elle, un A4 correct.


Quelqu'un lisant le Postscript dans le texte pourrait-il m'expliquer le pb ?


Merci d'avance.

  • # Quelques détails en plus

    Posté par  . Évalué à 1.

    L'utilisation de l'option -paper A4 de pdftops ne change rien. Une conversion du PS avec ps2ps ou pstops permet l'impression en A4. Le plus déroutant est que la différence entre le PS fautif et celui obtenu après conversion par pstops est relativement mineure mais malheureusement imbittable pour moi :
    $ diff -u KO.ps OK.ps
    --- KO.ps       2007-03-09 00:27:02.000000000 +0100
    +++ OK.ps     2007-03-09 00:15:08.000000000 +0100
    @@ -4,12 +4,43 @@
     %%DocumentSuppliedResources: (atend)
     %%DocumentMedia: plain 595 842 0 () ()
     %%BoundingBox: 0 0 595 842
    -%%Pages: 1
    +%%Pages: 1 0
     %%EndComments
     %%BeginDefaults
     %%PageMedia: plain
     %%EndDefaults
     %%BeginProlog
    +%%BeginProcSet: PStoPS 1 15
    +userdict begin
    +[/showpage/erasepage/copypage]{dup where{pop dup load
    + type/operatortype eq{ /PStoPSenablepage cvx 1 index load 1 array astore cvx {} bind /ifelse cvx 4 array astore cvx def}{pop}ifelse}{pop}ifelse}forall /PStoPSenablepage true def
    +[/letter/legal/executivepage/a4/a4small/b5/com10envelope
    + /monarchenvelope/c5envelope/dlenvelope/lettersmall/note
    + /folio/quarto/a5]{dup where{dup wcheck{exch{}put}
    + {pop{}def}ifelse}{pop}ifelse}forall
    +/setpagedevice {pop}bind 1 index where{dup wcheck{3 1 roll put}
    + {pop def}ifelse}{def}ifelse
    +/PStoPSmatrix matrix currentmatrix def
    +/PStoPSxform matrix def/PStoPSclip{clippath}def
    +/defaultmatrix{PStoPSmatrix exch PStoPSxform exch concatmatrix}bind def
    +/initmatrix{matrix defaultmatrix setmatrix}bind def
    +/initclip[{matrix currentmatrix PStoPSmatrix setmatrix
    + [{currentpoint}stopped{$error/newerror false put{newpath}}
    + {/newpath cvx 3 1 roll/moveto cvx 4 array astore cvx}ifelse]
    + {[/newpath cvx{/moveto cvx}{/lineto cvx}
    + {/curveto cvx}{/closepath cvx}pathforall]cvx exch pop}
    + stopped{$error/errorname get/invalidaccess eq{cleartomark
    + $error/newerror false put cvx exec}{stop}ifelse}if}bind aload pop
    + /initclip dup load dup type dup/operatortype eq{pop exch pop}
    + {dup/arraytype eq exch/packedarraytype eq or
    +  {dup xcheck{exch pop aload pop}{pop cvx}ifelse}
    +  {pop cvx}ifelse}ifelse
    + {newpath PStoPSclip clip newpath exec setmatrix} bind aload pop]cvx def
    +/initgraphics{initmatrix newpath initclip 1 setlinewidth
    + 0 setlinecap 0 setlinejoin []0 setdash 0 setgray
    + 10 setmiterlimit}bind def
    +end
    +%%EndProcSet
     %%BeginResource: procset xpdf 3.00 0
     /xpdf 75 dict def xpdf begin
     % PDF special state
    @@ -981,8 +1012,13 @@
       /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]
     pdfMakeFont
     595 842 true pdfSetup
    +userdict/PStoPSxform PStoPSmatrix matrix currentmatrix
    + matrix invertmatrix matrix concatmatrix
    + matrix invertmatrix put
     %%EndSetup
    -%%Page: 1 1
    +%%Page: (0) 1
    +userdict/PStoPSsaved save put
    +PStoPSxform concat
     %%BeginPageSetup
     %%PageOrientation: Portrait
     pdfStartPage
    @@ -10545,6 +10581,7 @@
     showpage
     %%PageTrailer
     pdfEndPage
    +PStoPSsaved restore
     %%Trailer
     end
     %%DocumentSuppliedResources:
    
    • [^] # Re: Quelques détails en plus

      Posté par  . Évalué à 1.

      Salut

      tu as regardé la config de cups ?

      ça peut venir de là ..
      Gui
      • [^] # Re: Quelques détails en plus

        Posté par  . Évalué à 1.

        Ben la config de l'imprimante dans Cups est bien positionnée sur A4.
        De plus j'ai essayé differents PPD (deux dans foomatic et celui fourni sur le CD de l'imprimante) -> il y a des variantes sur le rendu et la gestion du recto/verso mais le pb A4/Letter subsiste dans tous les cas.
        Penses-tu à un endroit en particulier dans la conf de cups qui aurait pu m'échapper ?
  • # alias?

    Posté par  . Évalué à 1.

    si tu supprimes pdftops et que tu fais un lien de pdftops vers pdf2ps, ton problème est résolu?

    B.
    • [^] # Re: alias?

      Posté par  . Évalué à 1.

      J'y ai bien pensé, mais ces outils ne s'utilisent pas tout à fait de la même façon via la ligne de commande. Et puis cups encapsule ces appels dans des filtres localisés dans /usr/lib/cups/filter. J'ai pour l'instant mis en place un contournement dans le même esprit. Dans le fichier /etc/cups/mime.convs j'ai remplacé les filtres pdftops et pstops respectivement par pdftops.pini et pstops.pini. Ces derniers sont des wrappers localisés dans le répertoire filter de cups et qui font simplement :
      #! /bin/bash
      /usr/lib/cups/filter/pdftops "$@" | /usr/bin/pstops 0
      Pour l'un et
      #! /bin/bash
      /usr/lib/cups/filter/pstops "$@" | /usr/bin/pstops 0
      Pour l'autre. Mais tu comprendras aisément que cette solution ne me satisfait pas intellectuellement, même si ça marche comme ça ;o)
      • [^] # dpkg-reconfigure libpaper1

        Posté par  . Évalué à 2.

        Ça change quelque chose ? Que contient /etc/parpersize ?
        • [^] # Re: dpkg-reconfigure libpaper1

          Posté par  . Évalué à 1.

          J'essaierai ça ce soir (je ne suis pas sur place).
          de mémoire /etc/papersize me dit quelque chose. J'ai déjà dû le vérifier.
          Merci.

          To be continued...
        • [^] # Re: dpkg-reconfigure libpaper1

          Posté par  . Évalué à 1.

          A4 était déjà sélectionné dans la config de libpaper1. Et /etc/papersize contient a4.
          Rien de nouveau donc.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.