summaryrefslogtreecommitdiff
path: root/Resource/IdiomSet/Pscript5Idiom
blob: 021603f3341c5653e07649706a67b999132dd523 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
%%
%% Idioms for the Windows PSCRIPT5 PostScript driver
%%

currentuserparams /IdiomRecognition get
<</IdiomRecognition false>> setuserparams

/Pscript5Idiom
<<
%% replacements for the artificial bold routines. When the current device supports text rendering modes we set the mode to 2 (fill and stroke)
%% and only show the text once, which improves seaching with pdfwrite. The parameter 'sBdx' is always calculated as the intended print resolution/300.
%% We can't do that in PDF so we just use a heuristically derived fixed value.
  /xsB [
    {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto xshow grestore gsave 0 sBdx rmoveto xshow grestore gsave sBdx sBdx rmoveto xshow grestore xshow} bind
    {
      /PreserveTrMode /GetDeviceParam .special_op {
          exch pop
      }{
          //false
      }ifelse
      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode xshow currentpoint grestore moveto}
      {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto xshow grestore gsave 0 sBdx rmoveto xshow grestore gsave sBdx dup rmoveto xshow grestore xshow} bind
      ifelse
    } bind
 ]
  /ysB [
    {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto yshow grestore gsave 0 sBdx rmoveto yshow grestore gsave sBdx sBdx rmoveto yshow grestore yshow} bind
    {
      /PreserveTrMode /GetDeviceParam .special_op {
          exch pop
      }{
          //false
      }ifelse
      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode yshow currentpoint grestore moveto}
      {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto yshow grestore gsave 0 sBdx rmoveto yshow grestore gsave sBdx dup rmoveto yshow grestore yshow} bind
      ifelse
    } bind
 ]
  /zsB [
    {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto xyshow grestore gsave 0 sBdx rmoveto xyshow grestore gsave sBdx sBdx rmoveto xyshow grestore xyshow} bind
    {
      /PreserveTrMode /GetDeviceParam .special_op {
          exch pop
      }{
          //false
      }ifelse
      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode xyshow currentpoint grestore moveto}
      {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto xyshow grestore gsave 0 sBdx rmoveto xyshow grestore gsave sBdx dup rmoveto xyshow grestore xyshow} bind
      ifelse
    } bind
 ]
 /sB [
    {1 copy 2 copy gsave sBdx 0 rmoveto show grestore gsave 0 sBdx rmoveto show grestore gsave sBdx sBdx rmoveto show grestore show} bind
    {
      /PreserveTrMode /GetDeviceParam .special_op {
          exch pop
      }{
          //false
      }ifelse
      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode show currentpoint grestore moveto}
      {1 copy 2 copy gsave sBdx 0 rmoveto show grestore gsave 0 sBdx rmoveto show grestore gsave sBdx dup rmoveto show grestore show} bind
      ifelse
    } bind
  ]
  /asB [
    {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto ashow grestore gsave 0 sBdx rmoveto ashow grestore gsave sBdx sBdx rmoveto ashow grestore ashow} bind
    {
      /PreserveTrMode /GetDeviceParam .special_op {
          exch pop
      }{
          //false
      }ifelse
      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode ashow currentpoint grestore moveto}
      {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto ashow grestore gsave 0 sBdx rmoveto ashow grestore gsave sBdx dup rmoveto ashow grestore ashow} bind
      ifelse
    } bind
   ]
  /wsB [
    {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto widthshow grestore gsave 0 sBdx rmoveto widthshow grestore gsave sBdx sBdx rmoveto widthshow grestore widthshow} bind
    {
      /PreserveTrMode /GetDeviceParam .special_op {
          exch pop
      }{
          //false
      }ifelse
      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode widthshow currentpoint grestore moveto}
      {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto widthshow grestore gsave 0 sBdx rmoveto widthshow grestore gsave sBdx dup rmoveto widthshow grestore widthshow} bind
      ifelse
    } bind
   ]

  /awsB [
    {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto awidthshow grestore gsave 0 sBdx rmoveto awidthshow grestore gsave sBdx sBdx rmoveto awidthshow grestore awidthshow} bind
    {
      /PreserveTrMode /GetDeviceParam .special_op {
          exch pop
      }{
          //false
      }ifelse
      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode awidthshow currentpoint grestore moveto}
      {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto awidthshow grestore gsave 0 sBdx rmoveto awidthshow grestore gsave sBdx dup rmoveto awidthshow grestore awidthshow} bind
      ifelse
    } bind
   ]

  /pbf [
    {
      gsave pop /fEOFill exch def GDIBWPatternDict begin /yOrg exch def /xOrg exch def /PaintData exch def/OutputBPP exch def
      /Height exch def/Width exch def/PaintType 1 def/PatternType 1 def/TilingType 1 def/BBox[0 0
      Width Height]def/XStep Width def/YStep Height def/mx xOrg yOrg matrix translate def 20 dict dup begin
      /ImageType 1 def/Width Width def/Height Height def/ImageMatrix[1 0 0 1 0 0]def
      /BitsPerComponent 8 def OutputBPP 24 eq{/Decode[0 1 0 1 0 1]def}{OutputBPP 8 eq{
      /Decode[0 1]def}{/Decode[0 1 0 1 0 1 0 1]def}ifelse}ifelse/DataSource{PaintData}def end/ImageDict
      exch def/PaintProc{begin ImageDict image end}b currentdict mx makepattern setpattern end fEOFill{eofill}{fill}
      ifelse grestore
    }bind
    {
      /IsDistiller /GetDeviceParam .special_op {
        exch pop
      }{
        //false
      } ifelse
      {gsave pop /fEOFill exch def GDIBWPatternDict begin /yOrg exch def /xOrg exch def /PaintData exch def/OutputBPP exch def
      /Height exch def/Width exch def/PaintType 1 def/PatternType 1 def/TilingType 1 def/BBox[0 0
      1 1]def/XStep 1 def/YStep 1 def/mx xOrg yOrg matrix translateWidth Height 3 -1 roll scale def 20 dict dup begin
      /ImageType 1 def/Width Width def/Height Height def/ImageMatrix[1 0 0 1 0 0]def
      /BitsPerComponent 8 def OutputBPP 24 eq{/Decode[0 1 0 1 0 1]def}{OutputBPP 8 eq{
      /Decode[0 1]def}{/Decode[0 1 0 1 0 1 0 1]def}ifelse}ifelse/DataSource{PaintData}def end/ImageDict
      exch def/PaintProc{begin ImageDict image end}b currentdict mx makepattern setpattern end fEOFill{eofill}{fill}
      ifelse grestore
      }{
      gsave pop /fEOFill exch def GDIBWPatternDict begin /yOrg exch def /xOrg exch def /PaintData exch def/OutputBPP exch def
      /Height exch def/Width exch def/PaintType 1 def/PatternType 1 def/TilingType 1 def/BBox[0 0
      Width Height]def/XStep Width def/YStep Height def/mx xOrg yOrg matrix translate def 20 dict dup begin
      /ImageType 1 def/Width Width def/Height Height def/ImageMatrix[1 0 0 1 0 0]def
      /BitsPerComponent 8 def OutputBPP 24 eq{/Decode[0 1 0 1 0 1]def}{OutputBPP 8 eq{
      /Decode[0 1]def}{/Decode[0 1 0 1 0 1 0 1]def}ifelse}ifelse/DataSource{PaintData}def end/ImageDict
      exch def/PaintProc{begin ImageDict image end}b currentdict mx makepattern setpattern end fEOFill{eofill}{fill}
      ifelse grestore
      } ifelse
    }bind
  ]

  /mask_pbf [
    {gsave /fEOFill exch def 20 dict begin /yOrg exch def /xOrg exch def /PaintData exch def /Height exch def
     /Width exch def /PatternType 1 def /PaintType 2 def /TilingType 1 def /BBox[0 0 Width Height] def
     /XStep Width def /YStep Height def /mx xOrg yOrg matrix translate def /PaintProc{begin Width Height T 1 1 dtransform abs exch abs exch 0 0 3 -1 roll 0 0 6 array astore {PaintData}imagemask end} b
     currentdict mx makepattern setpattern end fEOFill{eofill}{fill}ifelse grestore} bind
     {
        /IsDistiller /GetDeviceParam .special_op {
          exch pop
        }{
          //false
        } ifelse
        {
          gsave
          /fEOFill exch def 20 dict begin /yOrg exch def /xOrg exch def /PaintData exch def
          /Height exch def /Width exch def /PatternType 1 def /PaintType 2 def /TilingType 1 def
          /BBox[0 0 1 1] def
          /XStep 1 def /YStep 1 def
          /mx xOrg yOrg matrix translate Width Height 3 -1 roll scale def
          /PaintProc{begin Width Height T Width Height 0 0 3 -1 roll 0 0 6 array astore {PaintData}imagemask end} b
          currentdict mx makepattern setpattern end fEOFill{eofill}{fill}ifelse grestore
        }{
          gsave /fEOFill exch def 20 dict begin /yOrg exch def /xOrg exch def /PaintData exch def /Height exch def
          /Width exch def /PatternType 1 def /PaintType 2 def /TilingType 1 def /BBox[0 0 Width Height] def
          /XStep Width def /YStep Height def /mx xOrg yOrg matrix translate def /PaintProc{begin Width Height T 1 1 dtransform abs exch abs exch 0 0 3 -1 roll 0 0 6 array astore {PaintData}imagemask end} b
          currentdict mx makepattern setpattern end fEOFill{eofill}{fill}ifelse grestore
        } ifelse
    } bind
  ]
>>
/IdiomSet defineresource pop

<</IdiomRecognition 3 -1 roll>> setuserparams