Problem causing zoom of first page when upgrading cups

olivier.bernard at sncf.fr olivier.bernard at sncf.fr
Tue Nov 15 02:45:38 PST 2005


Hello,

I recently upgraded cups to the last release (1.1.23) on all my systems.
After that, some of our applications can't print well anymore.
The result is a first page zoomed and unreadable.
If I use the previous pstops filter (cups 1.1.12) the page print fine, but I would like to have a coherent version of Cups on my systems.
I can't change the postscript file generated by the application and I wonder if this file is Ok.
Should pstops be patched to fit with this kind of postscript file?

I redirected printing to a file to see what is the exact difference.
With the new version of cups, modifications are done far inside the
document, and not only at the head. (search "%%BeginFeature: *Resolution 1200dpi" line)

Here is an exemple.
First the head of source postscript
then the head of postscript file modified by Cups 1.1.23
then the head of postscript file modified by Cups 1.1.23 with 1.1.12 pstops
only the 1.1.12 print well.

Thanks in advance for your help

Olivier BERNARD

head of source postscript generated by the application
---------------------------------
%!PS-Adobe-2.0
%%BoundingBox: 18 18 1154 805
% postscript code for GPHIGS
% G5G . Decembre 1994
%
/gc { /colorgblue exch def /colorggreen exch def /colorgred exch def } bind def
/ic { /coloriblue exch def /colorigreen exch def /colorired exch def } bind def
/ep { /epaisseur exch def } bind def
/tl { /styleligne exch def } bind def
/tp { /txp exch def} bind def
/th { /txh exch def} bind def
/ts { /txs exch def} bind def
/tx { /txx exch def} bind def
/ta { /txa exch def} bind def
% Xn Yn ..... X1 Y1 N colour width style  ppl
/ppl
{ /m exch def
  colorgred colorggreen colorgblue setrgbcolor
  epaisseur setlinewidth
  styleligne 0 setdash
  newpath
  moveto
  m 1 sub {lineto} repeat
  stroke
  closepath
} bind def
%pfa et pfas decomp pour niv1
/pfabeg {
         [] 0 setdash
         epaisseur setlinewidth
         colorired colorigreen coloriblue setrgbcolor
         newpath moveto
        } bind def
/pfacnt { /m exch def m {lineto} repeat } bind def
/pfaend { /m exch def m {lineto} repeat closepath } bind def
% istyle pfa
/pfa { /istyle exch def 1 istyle eq {eofill} {stroke} ifelse } bind def
% edgflg istyle pfas
/pfas
{ /istyle exch def
  /edgflg exch def
  1 edgflg eq {gsave} if
  1 istyle eq {eofill} if
  0 istyle eq {stroke} if
  1 edgflg eq
  { grestore
    styleligne 0 setdash
    epaisseur setlinewidth
    colorgred colorggreen colorgblue setrgbcolor
    stroke
  } if
} bind def
% Xn Yn ..... X1 Y1 N colour ppmp
/ppmp
{ colorgred colorggreen colorgblue setrgbcolor
  1 setlinewidth
  [] 0 setdash
  { newpath
    moveto -0.5 0 rmoveto
    1 0 rlineto
    stroke
    closepath
  } repeat
} bind def
% Xn Yn ..... X1 Y1 N C scale colour ppmc
/ppmc
{ gsave
  /Times-Roman findfont exch scalefont setfont
  /cg exch def
  colorgred colorggreen colorgblue setrgbcolor
  newpath
  0 0 moveto
  cg true charpath
  flattenpath
  pathbbox exch pop add 2 div neg /dy exch def pop
  closepath
  cg stringwidth pop /dx exch 2 div neg def
  {moveto dx dy rmoveto cg show} repeat
  grestore
} bind def
% /fo font :positionnement font
/fo
{ /font exch def
  1 font eq {/Times-Roman findfont setfont} if
  2 font eq {/Times-Italic findfont setfont} if
  3 font eq {/Times-Bold findfont setfont} if
  4 font eq {/Times-BoldItalic findfont setfont} if
  5 font eq {/Helvetica findfont setfont} if
  6 font eq {/Helvetica-Oblique findfont setfont} if
  7 font eq {/Helvetica-Bold findfont setfont} if
  8 font eq {/Helvetica-BoldOblique findfont setfont} if
  9 font eq {/Courier findfont setfont} if
 10 font eq {/Courier-Oblique findfont setfont} if
 11 font eq {/Courier-Bold findfont setfont} if
 12 font eq {/Courier-BoldOblique findfont setfont} if
 13 font eq {/Symbol findfont setfont} if
  gsave
  newpath 0 0 moveto
  (X) true charpath flattenpath pathbbox
  /ury exch def
  exch ury exch sub /dcy exch def
  exch sub /dcx exch def
  (X) stringwidth pop /xbox exch def
  grestore
} bind def
%  chaine;x,y(position initiale DC) ptx
/ptx
{ /car 1 string def
  /largeur {txh txx mul dcx div} def
  /hauteur {txh dcy div} def
  0 txp eq { /dx  txs txh mul largeur div dcx add def /dy 0 def } if
  1 txp eq { /dx  txs txh mul largeur div dcx sub def /dy 0 def } if
  2 txp eq { /dy  txs txh mul hauteur div dcy add def /dx 0 def} if
  3 txp eq { /dy  txs txh mul hauteur div dcy sub def /dx 0 def } if
  colorgred colorggreen colorgblue setrgbcolor
  gsave
  translate txa rotate largeur hauteur scale
  xbox 1 sub 2 div /posx exch def /posy 0 def
  { posx posy moveto
    car exch 0 exch put car dup stringwidth pop
    1 exch sub 2 div 0 rmoveto show
    /posx posx dx add def /posy posy dy add def posx posy moveto
  } forall
  grestore
} bind def
% cell array x1 y1 x2 y2 ncol nlig ncar flag
/pca
{ /flag exch def
  /ncar exch def
  /nlig exch def
  /ncol exch def
  /y2 exch def
  /x2 exch def
  /y1 exch def
  /x1 exch def
  /pic ncar string def
  gsave save
  x1 y1 y2 y1 sub add  translate
  x2 x1 sub y2 y1 sub neg scale
  ncol nlig 8 [ncol 0 0 nlig neg 0 nlig]
  0 flag eq {{currentfile pic readhexstring pop} image} if
  1 flag eq {{currentfile pic readhexstring pop} false 3 colorimage} if
  restore grestore
} bind def
/DisplayIcon
{ gsave
  setrgbcolor
  /lenline exch def /line lenline string def
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns true  [rows 0 0 columns 0 0]
  { currentfile line readhexstring pop } imagemask
  grestore
} bind def
% Zbuffer RLE->Postscript
/color_packet 4 string def
/components 3 string def
/unpacked_packet 768 string def
/DisplayImageBin
{ gsave
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns 8  [rows 0 0 columns 0 0]
  { currentfile color_packet readstring pop pop
    /num_pixel color_packet 0 get 3 mul def
    /components color_packet 1 3 getinterval def
    0 3 num_pixel 3 sub { unpacked_packet exch components putinterval } for
    unpacked_packet 0 num_pixel getinterval
  } false 3 colorimage
  grestore
} bind def
/DisplayImageHexa
{ gsave
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns 8  [rows 0 0 columns 0 0]
  { currentfile color_packet readhexstring pop pop
    /num_pixel color_packet 0 get 3 mul def
    /components color_packet 1 3 getinterval def
    0 3 num_pixel 3 sub { unpacked_packet exch components putinterval } for
    unpacked_packet 0 num_pixel getinterval
  } false 3 colorimage
  grestore
} bind def
/DisplayImageNo
{ gsave
  /lenline exch def /line lenline string def
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns 8  [rows 0 0 columns 0 0]
  { currentfile line readhexstring pop } false 3 colorimage
  grestore
} bind def
% init default font
1 fo
% end
18 18 translate
0.24000 0.24000 scale
90 rotate 0 -3354.17 translate
%%Page: 1
[root at limi07 cups]# head 300 d00227-001
head: 300: Aucun fichier ou répertoire de ce type
==> d00227-001 <==
%!PS-Adobe-2.0
%%BoundingBox: 18 18 1154 805
% postscript code for GPHIGS
% G5G . Decembre 1994
%
/gc { /colorgblue exch def /colorggreen exch def /colorgred exch def } bind def
/ic { /coloriblue exch def /colorigreen exch def /colorired exch def } bind def
/ep { /epaisseur exch def } bind def
/tl { /styleligne exch def } bind def
/tp { /txp exch def} bind def
[root at limi07 cups]# head -300 d00227-001
%!PS-Adobe-2.0
%%BoundingBox: 18 18 1154 805
% postscript code for GPHIGS
% G5G . Decembre 1994
%
/gc { /colorgblue exch def /colorggreen exch def /colorgred exch def } bind def
/ic { /coloriblue exch def /colorigreen exch def /colorired exch def } bind def
/ep { /epaisseur exch def } bind def
/tl { /styleligne exch def } bind def
/tp { /txp exch def} bind def
/th { /txh exch def} bind def
/ts { /txs exch def} bind def
/tx { /txx exch def} bind def
/ta { /txa exch def} bind def
% Xn Yn ..... X1 Y1 N colour width style  ppl
/ppl
{ /m exch def
  colorgred colorggreen colorgblue setrgbcolor
  epaisseur setlinewidth
  styleligne 0 setdash
  newpath
  moveto
  m 1 sub {lineto} repeat
  stroke
  closepath
} bind def
%pfa et pfas decomp pour niv1
/pfabeg {
         [] 0 setdash
         epaisseur setlinewidth
         colorired colorigreen coloriblue setrgbcolor
         newpath moveto
        } bind def
/pfacnt { /m exch def m {lineto} repeat } bind def
/pfaend { /m exch def m {lineto} repeat closepath } bind def
% istyle pfa
/pfa { /istyle exch def 1 istyle eq {eofill} {stroke} ifelse } bind def
% edgflg istyle pfas
/pfas
{ /istyle exch def
  /edgflg exch def
  1 edgflg eq {gsave} if
  1 istyle eq {eofill} if
  0 istyle eq {stroke} if
  1 edgflg eq
  { grestore
    styleligne 0 setdash
    epaisseur setlinewidth
    colorgred colorggreen colorgblue setrgbcolor
    stroke
  } if
} bind def
% Xn Yn ..... X1 Y1 N colour ppmp
/ppmp
{ colorgred colorggreen colorgblue setrgbcolor
  1 setlinewidth
  [] 0 setdash
  { newpath
    moveto -0.5 0 rmoveto
    1 0 rlineto
    stroke
    closepath
  } repeat
} bind def
% Xn Yn ..... X1 Y1 N C scale colour ppmc
/ppmc
{ gsave
  /Times-Roman findfont exch scalefont setfont
  /cg exch def
  colorgred colorggreen colorgblue setrgbcolor
  newpath
  0 0 moveto
  cg true charpath
  flattenpath
  pathbbox exch pop add 2 div neg /dy exch def pop
  closepath
  cg stringwidth pop /dx exch 2 div neg def
  {moveto dx dy rmoveto cg show} repeat
  grestore
} bind def
% /fo font :positionnement font
/fo
{ /font exch def
  1 font eq {/Times-Roman findfont setfont} if
  2 font eq {/Times-Italic findfont setfont} if
  3 font eq {/Times-Bold findfont setfont} if
  4 font eq {/Times-BoldItalic findfont setfont} if
  5 font eq {/Helvetica findfont setfont} if
  6 font eq {/Helvetica-Oblique findfont setfont} if
  7 font eq {/Helvetica-Bold findfont setfont} if
  8 font eq {/Helvetica-BoldOblique findfont setfont} if
  9 font eq {/Courier findfont setfont} if
 10 font eq {/Courier-Oblique findfont setfont} if
 11 font eq {/Courier-Bold findfont setfont} if
 12 font eq {/Courier-BoldOblique findfont setfont} if
 13 font eq {/Symbol findfont setfont} if
  gsave
  newpath 0 0 moveto
  (X) true charpath flattenpath pathbbox
  /ury exch def
  exch ury exch sub /dcy exch def
  exch sub /dcx exch def
  (X) stringwidth pop /xbox exch def
  grestore
} bind def
%  chaine;x,y(position initiale DC) ptx
/ptx
{ /car 1 string def
  /largeur {txh txx mul dcx div} def
  /hauteur {txh dcy div} def
  0 txp eq { /dx  txs txh mul largeur div dcx add def /dy 0 def } if
  1 txp eq { /dx  txs txh mul largeur div dcx sub def /dy 0 def } if
  2 txp eq { /dy  txs txh mul hauteur div dcy add def /dx 0 def} if
  3 txp eq { /dy  txs txh mul hauteur div dcy sub def /dx 0 def } if
  colorgred colorggreen colorgblue setrgbcolor
  gsave
  translate txa rotate largeur hauteur scale
  xbox 1 sub 2 div /posx exch def /posy 0 def
  { posx posy moveto
    car exch 0 exch put car dup stringwidth pop
    1 exch sub 2 div 0 rmoveto show
    /posx posx dx add def /posy posy dy add def posx posy moveto
  } forall
  grestore
} bind def
% cell array x1 y1 x2 y2 ncol nlig ncar flag
/pca
{ /flag exch def
  /ncar exch def
  /nlig exch def
  /ncol exch def
  /y2 exch def
  /x2 exch def
  /y1 exch def
  /x1 exch def
  /pic ncar string def
  gsave save
  x1 y1 y2 y1 sub add  translate
  x2 x1 sub y2 y1 sub neg scale
  ncol nlig 8 [ncol 0 0 nlig neg 0 nlig]
  0 flag eq {{currentfile pic readhexstring pop} image} if
  1 flag eq {{currentfile pic readhexstring pop} false 3 colorimage} if
  restore grestore
} bind def
/DisplayIcon
{ gsave
  setrgbcolor
  /lenline exch def /line lenline string def
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns true  [rows 0 0 columns 0 0]
  { currentfile line readhexstring pop } imagemask
  grestore
} bind def
% Zbuffer RLE->Postscript
/color_packet 4 string def
/components 3 string def
/unpacked_packet 768 string def
/DisplayImageBin
{ gsave
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns 8  [rows 0 0 columns 0 0]
  { currentfile color_packet readstring pop pop
    /num_pixel color_packet 0 get 3 mul def
    /components color_packet 1 3 getinterval def
    0 3 num_pixel 3 sub { unpacked_packet exch components putinterval } for
    unpacked_packet 0 num_pixel getinterval
  } false 3 colorimage
  grestore
} bind def
/DisplayImageHexa
{ gsave
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns 8  [rows 0 0 columns 0 0]
  { currentfile color_packet readhexstring pop pop
    /num_pixel color_packet 0 get 3 mul def
    /components color_packet 1 3 getinterval def
    0 3 num_pixel 3 sub { unpacked_packet exch components putinterval } for
    unpacked_packet 0 num_pixel getinterval
  } false 3 colorimage
  grestore
} bind def
/DisplayImageNo
{ gsave
  /lenline exch def /line lenline string def
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns 8  [rows 0 0 columns 0 0]
  { currentfile line readhexstring pop } false 3 colorimage
  grestore
} bind def
% init default font
1 fo
% end
18 18 translate
0.24000 0.24000 scale
90 rotate 0 -3354.17 translate
%%Page: 1
newpath
0 0 moveto 4808 0 lineto
4808 3354 lineto 0 3354 lineto 0 0 lineto
closepath clip
0 0 0 gc
2.08 ep
[] tl
1 2725 1 2997 344 2997 344 2725 1 2725
5 ppl
1 1 1 ic
0 ep
344 2725 pfabeg
344 2725 344 2997 4457 2997 4457 2725
4 pfaend
1 pfa
2.08 ep
344 2725 344 2997 4457 2997 4457 2725 344 2725
5 ppl
0.74 0.74 0.74 gc
[8 8 ] tl
516 2997 516 2725
2 ppl
0 0 0 gc
0 ep
[] tl
0 tp
(...)
-----------------------


head of postscript file modified by Cups 1.1.23:
%!
%%IncludeFeature: header (off)
%%IncludeFeature: collate (off)
%%IncludeFeature: emulation (postscript)
%!PS-Adobe-2.0
%RBINumCopies: 1
%%Pages: (atend)
%%BoundingBox: 18 18 1154 805
% postscript code for GPHIGS
% G5G . Decembre 1994
%
/gc { /colorgblue exch def /colorggreen exch def /colorgred exch def } bind def
/ic { /coloriblue exch def /colorigreen exch def /colorired exch def } bind def
/ep { /epaisseur exch def } bind def
/tl { /styleligne exch def } bind def
/tp { /txp exch def} bind def
/th { /txh exch def} bind def
/ts { /txs exch def} bind def
/tx { /txx exch def} bind def
/ta { /txa exch def} bind def
% Xn Yn ..... X1 Y1 N colour width style  ppl
/ppl
{ /m exch def
  colorgred colorggreen colorgblue setrgbcolor
  epaisseur setlinewidth
  styleligne 0 setdash
  newpath
  moveto
  m 1 sub {lineto} repeat
  stroke
  closepath
} bind def
%pfa et pfas decomp pour niv1
/pfabeg {
         [] 0 setdash
         epaisseur setlinewidth
         colorired colorigreen coloriblue setrgbcolor
         newpath moveto
        } bind def
/pfacnt { /m exch def m {lineto} repeat } bind def
/pfaend { /m exch def m {lineto} repeat closepath } bind def
% istyle pfa
/pfa { /istyle exch def 1 istyle eq {eofill} {stroke} ifelse } bind def
% edgflg istyle pfas
/pfas
{ /istyle exch def
  /edgflg exch def
  1 edgflg eq {gsave} if
  1 istyle eq {eofill} if
  0 istyle eq {stroke} if
  1 edgflg eq
  { grestore
    styleligne 0 setdash
    epaisseur setlinewidth
    colorgred colorggreen colorgblue setrgbcolor
    stroke
  } if
} bind def
% Xn Yn ..... X1 Y1 N colour ppmp
/ppmp
{ colorgred colorggreen colorgblue setrgbcolor
  1 setlinewidth
  [] 0 setdash
  { newpath
    moveto -0.5 0 rmoveto
    1 0 rlineto
    stroke
    closepath
  } repeat
} bind def
% Xn Yn ..... X1 Y1 N C scale colour ppmc
/ppmc
{ gsave
  /Times-Roman findfont exch scalefont setfont
  /cg exch def
  colorgred colorggreen colorgblue setrgbcolor
  newpath
  0 0 moveto
  cg true charpath
  flattenpath
  pathbbox exch pop add 2 div neg /dy exch def pop
  closepath
  cg stringwidth pop /dx exch 2 div neg def
  {moveto dx dy rmoveto cg show} repeat
  grestore
} bind def
% /fo font :positionnement font
/fo
{ /font exch def
  1 font eq {/Times-Roman findfont setfont} if
  2 font eq {/Times-Italic findfont setfont} if
  3 font eq {/Times-Bold findfont setfont} if
  4 font eq {/Times-BoldItalic findfont setfont} if
  5 font eq {/Helvetica findfont setfont} if
  6 font eq {/Helvetica-Oblique findfont setfont} if
  7 font eq {/Helvetica-Bold findfont setfont} if
  8 font eq {/Helvetica-BoldOblique findfont setfont} if
  9 font eq {/Courier findfont setfont} if
 10 font eq {/Courier-Oblique findfont setfont} if
 11 font eq {/Courier-Bold findfont setfont} if
 12 font eq {/Courier-BoldOblique findfont setfont} if
 13 font eq {/Symbol findfont setfont} if
  gsave
  newpath 0 0 moveto
  (X) true charpath flattenpath pathbbox
  /ury exch def
  exch ury exch sub /dcy exch def
  exch sub /dcx exch def
  (X) stringwidth pop /xbox exch def
  grestore
} bind def
%  chaine;x,y(position initiale DC) ptx
/ptx
{ /car 1 string def
  /largeur {txh txx mul dcx div} def
  /hauteur {txh dcy div} def
  0 txp eq { /dx  txs txh mul largeur div dcx add def /dy 0 def } if
  1 txp eq { /dx  txs txh mul largeur div dcx sub def /dy 0 def } if
  2 txp eq { /dy  txs txh mul hauteur div dcy add def /dx 0 def} if
  3 txp eq { /dy  txs txh mul hauteur div dcy sub def /dx 0 def } if
  colorgred colorggreen colorgblue setrgbcolor
  gsave
  translate txa rotate largeur hauteur scale
  xbox 1 sub 2 div /posx exch def /posy 0 def
  { posx posy moveto
    car exch 0 exch put car dup stringwidth pop
    1 exch sub 2 div 0 rmoveto show
    /posx posx dx add def /posy posy dy add def posx posy moveto
  } forall
  grestore
} bind def
% cell array x1 y1 x2 y2 ncol nlig ncar flag
/pca
{ /flag exch def
  /ncar exch def
  /nlig exch def
  /ncol exch def
  /y2 exch def
  /x2 exch def
  /y1 exch def
  /x1 exch def
  /pic ncar string def
  gsave save
  x1 y1 y2 y1 sub add  translate
  x2 x1 sub y2 y1 sub neg scale
  ncol nlig 8 [ncol 0 0 nlig neg 0 nlig]
  0 flag eq {{currentfile pic readhexstring pop} image} if
  1 flag eq {{currentfile pic readhexstring pop} false 3 colorimage} if
  restore grestore
} bind def
/DisplayIcon
{ gsave
  setrgbcolor
  /lenline exch def /line lenline string def
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns true  [rows 0 0 columns 0 0]
  { currentfile line readhexstring pop } imagemask
  grestore
} bind def
% Zbuffer RLE->Postscript
/color_packet 4 string def
/components 3 string def
/unpacked_packet 768 string def
/DisplayImageBin
{ gsave
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns 8  [rows 0 0 columns 0 0]
  { currentfile color_packet readstring pop pop
    /num_pixel color_packet 0 get 3 mul def
    /components color_packet 1 3 getinterval def
    0 3 num_pixel 3 sub { unpacked_packet exch components putinterval } for
    unpacked_packet 0 num_pixel getinterval
  } false 3 colorimage
  grestore
} bind def
/DisplayImageHexa
{ gsave
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns 8  [rows 0 0 columns 0 0]
  { currentfile color_packet readhexstring pop pop
    /num_pixel color_packet 0 get 3 mul def
    /components color_packet 1 3 getinterval def
    0 3 num_pixel 3 sub { unpacked_packet exch components putinterval } for
    unpacked_packet 0 num_pixel getinterval
  } false 3 colorimage
  grestore
} bind def
/DisplayImageNo
{ gsave
  /lenline exch def /line lenline string def
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns 8  [rows 0 0 columns 0 0]
  { currentfile line readhexstring pop } false 3 colorimage
  grestore
} bind def
% init default font
1 fo
% end
18 18 translate
0.24000 0.24000 scale
90 rotate 0 -3354.17 translate
%%BeginProlog
%%EndProlog
%%BeginSetup
[{
%%BeginFeature: *Resolution 1200dpi
<< /HWResolution [1200 1200] >> setpagedevice
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *InputSlot Lower

  currentpagedevice /InputAttributes get 2 get
  dup null eq
  { pop }
  { dup length 1 add dict copy
    dup /InputAttributes
    1 dict dup /Priority [2] put
    put setpagedevice
  } ifelse
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *TraySwitch True
1 dict dup /TraySwitch true put setpagedevice
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *MonoGammaCorrection Off
0 statusdict /setgammacorrection get exec
%%EndFeature
} stopped cleartomark
% x y w h ESPrc - Clip to a rectangle.
userdict/ESPrc/rectclip where{pop/rectclip load}
{{newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath clip newpath}bind}ifelse put
% x y w h ESPrf - Fill a rectangle.
userdict/ESPrf/rectfill where{pop/rectfill load}
{{gsave newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath fill grestore}bind}ifelse put
% x y w h ESPrs - Stroke a rectangle.
userdict/ESPrs/rectstroke where{pop/rectstroke load}
{{gsave newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath stroke grestore}bind}ifelse put
%%EndSetup
userdict/ESPwl{}bind put
%%Page: 1 1
newpath
0 0 moveto 4808 0 lineto
4808 3354 lineto 0 3354 lineto 0 0 lineto
closepath clip
0 0 0 gc
2.08 ep
[] tl
1 2725 1 2997 344 2997 344 2725 1 2725
5 ppl
1 1 1 ic
0 ep
344 2725 pfabeg
344 2725 344 2997 4457 2997 4457 2725
4 pfaend
1 pfa
2.08 ep
344 2725 344 2997 4457 2997 4457 2725 344 2725
5 ppl
0.74 0.74 0.74 gc
[8 8 ] tl
516 2997 516 2725
2 ppl
0 0 0 gc
0 ep
[] tl
0 tp
(...)
------------------------------------

head of postscript file modified by Cups 1.1.23 with 1.1.12 pstops :
%!
%%IncludeFeature: header (off)
%%IncludeFeature: collate (off)
%%IncludeFeature: emulation (postscript)
%!PS-Adobe-2.0

[{
%%BeginFeature: *Resolution 1200dpi
<< /HWResolution [1200 1200] >> setpagedevice
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *InputSlot Lower

  currentpagedevice /InputAttributes get 2 get
  dup null eq
  { pop }
  { dup length 1 add dict copy
    dup /InputAttributes
    1 dict dup /Priority [2] put
    put setpagedevice
  } ifelse
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *TraySwitch True
1 dict dup /TraySwitch true put setpagedevice
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *MonoGammaCorrection Off
0 statusdict /setgammacorrection get exec
%%EndFeature
} stopped cleartomark
/espWL{}bind def
%%BoundingBox: 18 18 1154 805
% postscript code for GPHIGS
% G5G . Decembre 1994
%
/gc { /colorgblue exch def /colorggreen exch def /colorgred exch def } bind def
/ic { /coloriblue exch def /colorigreen exch def /colorired exch def } bind def
/ep { /epaisseur exch def } bind def
/tl { /styleligne exch def } bind def
/tp { /txp exch def} bind def
/th { /txh exch def} bind def
/ts { /txs exch def} bind def
/tx { /txx exch def} bind def
/ta { /txa exch def} bind def
% Xn Yn ..... X1 Y1 N colour width style  ppl
/ppl
{ /m exch def
  colorgred colorggreen colorgblue setrgbcolor
  epaisseur setlinewidth
  styleligne 0 setdash
  newpath
  moveto
  m 1 sub {lineto} repeat
  stroke
  closepath
} bind def
%pfa et pfas decomp pour niv1
/pfabeg {
         [] 0 setdash
         epaisseur setlinewidth
         colorired colorigreen coloriblue setrgbcolor
         newpath moveto
        } bind def
/pfacnt { /m exch def m {lineto} repeat } bind def
/pfaend { /m exch def m {lineto} repeat closepath } bind def
% istyle pfa
/pfa { /istyle exch def 1 istyle eq {eofill} {stroke} ifelse } bind def
% edgflg istyle pfas
/pfas
{ /istyle exch def
  /edgflg exch def
  1 edgflg eq {gsave} if
  1 istyle eq {eofill} if
  0 istyle eq {stroke} if
  1 edgflg eq
  { grestore
    styleligne 0 setdash
    epaisseur setlinewidth
    colorgred colorggreen colorgblue setrgbcolor
    stroke
  } if
} bind def
% Xn Yn ..... X1 Y1 N colour ppmp
/ppmp
{ colorgred colorggreen colorgblue setrgbcolor
  1 setlinewidth
  [] 0 setdash
  { newpath
    moveto -0.5 0 rmoveto
    1 0 rlineto
    stroke
    closepath
  } repeat
} bind def
% Xn Yn ..... X1 Y1 N C scale colour ppmc
/ppmc
{ gsave
  /Times-Roman findfont exch scalefont setfont
  /cg exch def
  colorgred colorggreen colorgblue setrgbcolor
  newpath
  0 0 moveto
  cg true charpath
  flattenpath
  pathbbox exch pop add 2 div neg /dy exch def pop
  closepath
  cg stringwidth pop /dx exch 2 div neg def
  {moveto dx dy rmoveto cg show} repeat
  grestore
} bind def
% /fo font :positionnement font
/fo
{ /font exch def
  1 font eq {/Times-Roman findfont setfont} if
  2 font eq {/Times-Italic findfont setfont} if
  3 font eq {/Times-Bold findfont setfont} if
  4 font eq {/Times-BoldItalic findfont setfont} if
  5 font eq {/Helvetica findfont setfont} if
  6 font eq {/Helvetica-Oblique findfont setfont} if
  7 font eq {/Helvetica-Bold findfont setfont} if
  8 font eq {/Helvetica-BoldOblique findfont setfont} if
  9 font eq {/Courier findfont setfont} if
 10 font eq {/Courier-Oblique findfont setfont} if
 11 font eq {/Courier-Bold findfont setfont} if
 12 font eq {/Courier-BoldOblique findfont setfont} if
 13 font eq {/Symbol findfont setfont} if
  gsave
  newpath 0 0 moveto
  (X) true charpath flattenpath pathbbox
  /ury exch def
  exch ury exch sub /dcy exch def
  exch sub /dcx exch def
  (X) stringwidth pop /xbox exch def
  grestore
} bind def
%  chaine;x,y(position initiale DC) ptx
/ptx
{ /car 1 string def
  /largeur {txh txx mul dcx div} def
  /hauteur {txh dcy div} def
  0 txp eq { /dx  txs txh mul largeur div dcx add def /dy 0 def } if
  1 txp eq { /dx  txs txh mul largeur div dcx sub def /dy 0 def } if
  2 txp eq { /dy  txs txh mul hauteur div dcy add def /dx 0 def} if
  3 txp eq { /dy  txs txh mul hauteur div dcy sub def /dx 0 def } if
  colorgred colorggreen colorgblue setrgbcolor
  gsave
  translate txa rotate largeur hauteur scale
  xbox 1 sub 2 div /posx exch def /posy 0 def
  { posx posy moveto
    car exch 0 exch put car dup stringwidth pop
    1 exch sub 2 div 0 rmoveto show
    /posx posx dx add def /posy posy dy add def posx posy moveto
  } forall
  grestore
} bind def
% cell array x1 y1 x2 y2 ncol nlig ncar flag
/pca
{ /flag exch def
  /ncar exch def
  /nlig exch def
  /ncol exch def
  /y2 exch def
  /x2 exch def
  /y1 exch def
  /x1 exch def
  /pic ncar string def
  gsave save
  x1 y1 y2 y1 sub add  translate
  x2 x1 sub y2 y1 sub neg scale
  ncol nlig 8 [ncol 0 0 nlig neg 0 nlig]
  0 flag eq {{currentfile pic readhexstring pop} image} if
  1 flag eq {{currentfile pic readhexstring pop} false 3 colorimage} if
  restore grestore
} bind def
/DisplayIcon
{ gsave
  setrgbcolor
  /lenline exch def /line lenline string def
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns true  [rows 0 0 columns 0 0]
  { currentfile line readhexstring pop } imagemask
  grestore
} bind def
% Zbuffer RLE->Postscript
/color_packet 4 string def
/components 3 string def
/unpacked_packet 768 string def
/DisplayImageBin
{ gsave
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns 8  [rows 0 0 columns 0 0]
  { currentfile color_packet readstring pop pop
    /num_pixel color_packet 0 get 3 mul def
    /components color_packet 1 3 getinterval def
    0 3 num_pixel 3 sub { unpacked_packet exch components putinterval } for
    unpacked_packet 0 num_pixel getinterval
  } false 3 colorimage
  grestore
} bind def
/DisplayImageHexa
{ gsave
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns 8  [rows 0 0 columns 0 0]
  { currentfile color_packet readhexstring pop pop
    /num_pixel color_packet 0 get 3 mul def
    /components color_packet 1 3 getinterval def
    0 3 num_pixel 3 sub { unpacked_packet exch components putinterval } for
    unpacked_packet 0 num_pixel getinterval
  } false 3 colorimage
  grestore
} bind def
/DisplayImageNo
{ gsave
  /lenline exch def /line lenline string def
  translate scale
  /columns exch def /rows exch def
  newpath 0 0 moveto rows columns 8  [rows 0 0 columns 0 0]
  { currentfile line readhexstring pop } false 3 colorimage
  grestore
} bind def
% init default font
1 fo
% end
18 18 translate
0.24000 0.24000 scale
90 rotate 0 -3354.17 translate
%%Page: 1 1
newpath
0 0 moveto 4808 0 lineto
4808 3354 lineto 0 3354 lineto 0 0 lineto
closepath clip
0 0 0 gc
2.08 ep
[] tl
1 2725 1 2997 344 2997 344 2725 1 2725
5 ppl
1 1 1 ic
0 ep
344 2725 pfabeg
344 2725 344 2997 4457 2997 4457 2725
4 pfaend
1 pfa
2.08 ep
344 2725 344 2997 4457 2997 4457 2725 344 2725
5 ppl
0.74 0.74 0.74 gc
[8 8 ] tl
516 2997 516 2725
2 ppl
0 0 0 gc
0 ep
[] tl
0 tp
(...)




More information about the cups mailing list