diff options
Diffstat (limited to 'src/gui/painting/qpsprinter.ps')
-rw-r--r-- | src/gui/painting/qpsprinter.ps | 449 |
1 files changed, 0 insertions, 449 deletions
diff --git a/src/gui/painting/qpsprinter.ps b/src/gui/painting/qpsprinter.ps deleted file mode 100644 index ef3f42970b..0000000000 --- a/src/gui/painting/qpsprinter.ps +++ /dev/null @@ -1,449 +0,0 @@ -% the postscript header we use for our qpsprinter in uncompressed and commented form. -% use the makepsheader perl script to generate a compressed version of this header -% you can then paste into qpsprinter.cpp -% -% some compression of the code is done by the makepsheader script, so we don't need to -% write too criptically here. - -/BD {bind def} bind def -/d2 {dup dup} BD -/ED {exch def} BD -/D0 {0 ED} BD - -/F {setfont} BD -/RL {rlineto} BD -/CM {currentmatrix} BD -/SM {setmatrix} BD -/TR {translate} BD -/SD {setdash} BD -/SC {aload pop setrgbcolor} BD -/CR {currentfile read pop} BD -/i {index} BD -/scs {setcolorspace} BD -/DB {dict dup begin} BD -/DE {end def} BD -/ie {ifelse} BD -/gs {gsave} BD -/gr {grestore} BD - -% these use PDF syntax -/w {setlinewidth} BD -/d {setdash} BD -/J {setlinecap} BD -/j {setlinejoin} BD -/scn {3 array astore /BCol exch def} BD -/SCN {3 array astore /PCol exch def} BD -/cm {6 array astore concat} BD - -/m {moveto} BD -/l {lineto} BD -/c {curveto} BD -/h {closepath} BD - -/W {clip} BD -/W* {eoclip} BD -/n {newpath} BD -% ENDUNCOMPRESSED: Warning: leave this line in. -% Everything before this line will be left untouched by the compression - -/q {gsave 10 dict begin} BD -/Q {end grestore} BD - -% PDF operators -/re { % PDF re operator - 4 2 roll % w h x y - moveto % w h - dup % w h h - 0 exch rlineto % w h - exch 0 rlineto % h - 0 exch neg rlineto - closepath -} bind def - -/S { - gsave - PCol SC stroke - grestore - newpath -} BD - -% PDF text operators -/BT {gsave 10 dict begin /_m matrix currentmatrix def BCol SC} BD -/ET {end grestore} BD -/Tf { - /_fs exch def - findfont - [ _fs 0 0 _fs 0 0 ] - makefont - setfont -} BD -/Tm {6 array astore concat} BD -/Td {translate} BD -/Tj {0 0 moveto show} BD -/BDC {pop pop} BD -/EMC {} BD - -% old operators - -/BSt 0 def % brush style -/WFi false def % winding fill - -/BCol [ 1 1 1 ] def % brush color -/PCol [ 0 0 0 ] def % pen color -/BDArr [ % Brush dense patterns - 0.94 - 0.88 - 0.63 - 0.50 - 0.37 - 0.12 - 0.06 -] def - -% -- level3 true/false -/level3 { - /languagelevel where { - pop - languagelevel 3 ge - } { false } ifelse -} bind def - - -%% image drawing routines - -% defines for QCI -/QCIgray D0 /QCIcolor D0 /QCIindex D0 - -% this method prints color images if colorimage is available, otherwise -% converts the string to a grayscale image and uses the reular postscript image -% operator for printing. -% Arguments are the same as for the image operator: -% -% width height bits/sample matrix datasrc QCI - -/QCI { - /colorimage where { - pop - false 3 colorimage - }{ % the hard way, based on PD code by John Walker <kelvin@autodesk.com> - exec /QCIcolor exch def - /QCIgray QCIcolor length 3 idiv string def - 0 1 QCIcolor length 3 idiv 1 sub - { /QCIindex exch def - /_x QCIindex 3 mul def - QCIgray QCIindex - QCIcolor _x get 0.30 mul - QCIcolor _x 1 add get 0.59 mul - QCIcolor _x 2 add get 0.11 mul - add add cvi - put - } for - QCIgray image - } ifelse -} bind def - -% general image drawing routine, used from the postscript driver -% -% Draws images with and without mask with 1, 8 and 24(rgb) bits depth. -% -% width height matrix image 1|8|24 mask|false x y di -% -% width and height specify the width/height of the image, -% matrix a transformation matrix, image a procedure holding the image data -% (same for mask) and x/y an additional translation. -% -% ### should move the translation into the matrix!!! -/di -{ - gsave - translate - 1 index 1 eq { % bitmap - pop pop % get rid of mask and depth - false 3 1 roll % width height false matrix image - BCol SC - imagemask - } { - dup false ne { - % have a mask, see if we can use it - level3 - } { - false - } ifelse - - { - % languagelevel3, we can use image mask and dicts - - % store the image mask - /_ma exch def - % select colorspace according to 8|24 bit depth and set the decode array /dc - 8 eq { - /_dc [0 1] def - /DeviceGray - } { - /_dc [0 1 0 1 0 1] def - /DeviceRGB - } ifelse - setcolorspace - % the image data - /_im exch def - % transformation matrix - /_mt exch def - % width and height - /_h exch def - /_w exch def - % and the combined image dict - << - /ImageType 3 - % the image dict - /DataDict << - /ImageType 1 - /Width _w - /Height _h - /ImageMatrix _mt - /DataSource _im - /BitsPerComponent 8 - /Decode _dc - >> - % the mask dictionary - /MaskDict << - /ImageType 1 - /Width _w - /Height _h - /ImageMatrix _mt - /DataSource _ma - /BitsPerComponent 1 - /Decode [0 1] - >> - /InterleaveType 3 - >> - image - } { - pop % no mask or can't use it, get rid of it - 8 % width height image 8|24 8 matrix - 4 1 roll - 8 eq { % grayscale - image - } { %color - QCI - } ifelse - } ifelse - } ifelse - grestore -} bind def - - -/BF { % brush fill - gsave - BSt 1 eq % solid brush? - { - BCol SC - WFi { fill } { eofill } ifelse - } if - BSt 2 ge BSt 8 le and % dense pattern? - { - BDArr BSt 2 sub get /_sc exch def - % the following line scales the brush color according to the pattern. the higher the pattern the lighter the color. - BCol - { - 1. exch sub _sc mul 1. exch sub - } forall - 3 array astore - SC - WFi { fill } { eofill } ifelse - } if - BSt 9 ge BSt 14 le and % brush pattern? - { - WFi { clip } { eoclip } ifelse - pathbbox % left upper right lower - 3 index 3 index translate - 4 2 roll % right lower left upper - 3 2 roll % right left upper lower - exch % left right lower upper - sub /_h exch def - sub /_w exch def - BCol SC - 0.3 setlinewidth - newpath - BSt 9 eq BSt 11 eq or % horiz or cross pattern - { 0 4 _h - { dup 0 exch moveto _w exch lineto } for - } if - BSt 10 eq BSt 11 eq or % vert or cross pattern - { 0 4 _w - { dup 0 moveto _h lineto } for - } if - BSt 12 eq BSt 14 eq or % F-diag or diag cross - { _w _h gt - { 0 6 _w _h add - { dup 0 moveto _h sub _h lineto } for - } { 0 6 _w _h add - { dup 0 exch moveto _w sub _w exch lineto } for - } ifelse - } if - BSt 13 eq BSt 14 eq or % B-diag or diag cross - { _w _h gt - { 0 6 _w _h add - { dup _h moveto _h sub 0 lineto } for - } { 0 6 _w _h add - { dup _w exch moveto _w sub 0 exch lineto } for - } ifelse - } if - stroke - } if - BSt 15 eq - { - } if - BSt 24 eq % TexturePattern - { - } if - grestore -} bind def - -% more PDF operators -/f { /WFi true def BF newpath } bind def -/f* { /WFi false def BF newpath } bind def -/B { /WFi true def BF S newpath } bind def -/B* { /WFi false def BF S newpath } bind def - -%% start of page -/QI { - /C save def - pageinit - q - newpath -} bind def - -%% end of page -/QP { - Q % show page - C restore - showpage -} bind def - -% merges one key value pair into the page device dict -% -% key value SPD - -/SPD { - /setpagedevice where { - << 3 1 roll >> - setpagedevice - } { pop pop } ifelse -} bind def - - -% font handling - -/T1AddMapping { % basefont [glyphname ...] T1AddMapping - - 10 dict begin - /glyphs exch def - /fnt exch def - /current fnt /NumGlyphs get def - /CMap fnt /CMap get def - - 0 1 glyphs length 1 sub % 0 1 (num glyphs - 1) - { - glyphs exch get /gn exch def - - current dup % glyph_index glyph_index - 256 mod /min exch def % glyph_index - 256 idiv /maj exch def % - - CMap dup maj get dup % cmap cmap_maj cmap_maj - null eq { - pop 256 array - 0 1 255 {1 index exch /.notdef put} for - } if - dup % cmap cmap_maj cmap_maj - min gn put % cmap cmap_maj - maj exch put % - - - /current current 1 add def - } for - - fnt /CMap CMap put - fnt /NumGlyphs current put - end -} def - -/T1AddGlyphs { % basefont [glyphname charstring ...] T1AddGlyphs - - 10 dict begin - /glyphs exch def - /fnt exch def - /current fnt /NumGlyphs get def - /CMap fnt /CMap get def - /CharStrings fnt /CharStrings get def - - 0 1 glyphs length 2 idiv 1 sub % 0 1 (num glyphs - 1) - { - 2 mul dup - glyphs exch get /gn exch def - 1 add - glyphs exch get /cs exch def - - current dup % glyph_index glyph_index - 256 mod /min exch def % glyph_index - 256 idiv /maj exch def % - - CMap dup maj get dup % cmap cmap_maj cmap_maj - null eq { - pop 256 array - 0 1 255 {1 index exch /.notdef put} for - } if - dup % cmap cmap_maj cmap_maj - min gn put % cmap cmap_maj - maj exch put % - - - CharStrings gn cs put - /current current 1 add def - } for - - fnt /CharStrings CharStrings put - fnt /CMap CMap put - fnt /NumGlyphs current put - end -} def - - - -/StringAdd { % string1 string2 stringadd result - 1 index length 1 index length add - string - 3 1 roll - 2 index 0 3 index putinterval - 2 index 2 index length 2 index putinterval - pop pop -} def - - -/T1Setup { % fontname T1Setup - -10 dict begin - dup /FontName exch def - (-Base) StringAdd cvx cvn /Font exch def - /MaxPage Font /NumGlyphs get 1 sub 256 idiv def - - /FDepVector MaxPage 1 add array def - /Encoding MaxPage 1 add array def - - 0 1 MaxPage { - dup Encoding exch dup put - - - dup /Page exch def - FontName (-) StringAdd - exch - 20 string cvs StringAdd % page fontname - cvn - - Font 0 dict copy dup dup /CMap get - Page get - /Encoding exch put definefont - FDepVector exch Page exch put - } for - - FontName cvn << - /FontType 0 - /FMapType 2 - /FontMatrix[1 0 0 1 0 0] - /Encoding Encoding - /FDepVector FDepVector - >> definefont pop - end -} def - |