rghost_barcode 0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/doc/classes/RGhost.html +109 -0
- data/lib/doc/classes/RGhost/Barcode.html +147 -0
- data/lib/doc/classes/RGhost/Barcode/Auspost.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Azteccode.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Base.html +266 -0
- data/lib/doc/classes/RGhost/Barcode/Base.src/M000004.html +34 -0
- data/lib/doc/classes/RGhost/Barcode/Base.src/M000005.html +30 -0
- data/lib/doc/classes/RGhost/Barcode/Base.src/M000006.html +20 -0
- data/lib/doc/classes/RGhost/Barcode/Border.html +170 -0
- data/lib/doc/classes/RGhost/Barcode/Border.src/M000001.html +27 -0
- data/lib/doc/classes/RGhost/Barcode/Code11.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Code128.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Code2of5.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Code39.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Code93.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Datamatrix.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Ean13.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Ean2.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Ean5.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Ean8.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Guard.html +174 -0
- data/lib/doc/classes/RGhost/Barcode/Guard.src/M000003.html +27 -0
- data/lib/doc/classes/RGhost/Barcode/Interleaved2of5.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Isbn.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Kix.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Maxicode.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Msi.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Onecode.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.html +262 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000007.html +20 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000008.html +18 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000009.html +18 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000010.html +18 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000011.html +18 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000012.html +24 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000013.html +18 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000014.html +18 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000015.html +16 -0
- data/lib/doc/classes/RGhost/Barcode/Pdf417.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Pharmacode.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Plessey.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Postnet.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Qrcode.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Rationalizedcodabar.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Raw.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Royalmail.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Rss14.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Rssexpanded.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Rsslimited.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Symbol.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Text.html +193 -0
- data/lib/doc/classes/RGhost/Barcode/Text.src/M000002.html +30 -0
- data/lib/doc/classes/RGhost/Barcode/Upca.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Upce.html +113 -0
- data/lib/doc/classes/RGhost/Config.html +150 -0
- data/lib/doc/classes/RGhost/Config.src/M000016.html +45 -0
- data/lib/doc/classes/RGhost/Document.html +704 -0
- data/lib/doc/classes/RGhost/Document.src/M000017.html +19 -0
- data/lib/doc/classes/RGhost/Document.src/M000018.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000019.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000020.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000021.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000022.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000023.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000024.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000025.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000026.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000027.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000028.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000029.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000030.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000031.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000032.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000033.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000034.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000035.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000036.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000037.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000038.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000039.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000040.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000041.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000042.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000043.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000044.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000045.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000046.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000047.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000048.html +18 -0
- data/lib/doc/created.rid +1 -0
- data/lib/doc/files/rghost_barcode/rghost_barcode_adapter_rb.html +101 -0
- data/lib/doc/files/rghost_barcode/rghost_barcode_base_rb.html +101 -0
- data/lib/doc/files/rghost_barcode/rghost_barcode_classes_rb.html +101 -0
- data/lib/doc/files/rghost_barcode/rghost_barcode_examples_rb.html +101 -0
- data/lib/doc/files/rghost_barcode/rghost_barcode_version_rb.html +101 -0
- data/lib/doc/files/rghost_barcode_rb.html +111 -0
- data/lib/doc/files/teste_main_rb.html +110 -0
- data/lib/doc/fr_class_index.html +67 -0
- data/lib/doc/fr_file_index.html +33 -0
- data/lib/doc/fr_method_index.html +74 -0
- data/lib/doc/index.html +24 -0
- data/lib/rghost_barcode.rb +7 -0
- data/lib/rghost_barcode/ps/auspost.ps +192 -0
- data/lib/rghost_barcode/ps/azteccode.ps +357 -0
- data/lib/rghost_barcode/ps/barcode_template.eps +1193 -0
- data/lib/rghost_barcode/ps/code11.ps +128 -0
- data/lib/rghost_barcode/ps/code128.ps +121 -0
- data/lib/rghost_barcode/ps/code2of5.ps +106 -0
- data/lib/rghost_barcode/ps/code39.ps +109 -0
- data/lib/rghost_barcode/ps/code93.ps +117 -0
- data/lib/rghost_barcode/ps/datamatrix.ps +328 -0
- data/lib/rghost_barcode/ps/ean13.ps +183 -0
- data/lib/rghost_barcode/ps/ean2.ps +101 -0
- data/lib/rghost_barcode/ps/ean5.ps +116 -0
- data/lib/rghost_barcode/ps/ean8.ps +101 -0
- data/lib/rghost_barcode/ps/interleaved2of5.ps +132 -0
- data/lib/rghost_barcode/ps/isbn.ps +118 -0
- data/lib/rghost_barcode/ps/kix.ps +98 -0
- data/lib/rghost_barcode/ps/maxicode.ps +307 -0
- data/lib/rghost_barcode/ps/msi.ps +104 -0
- data/lib/rghost_barcode/ps/onecode.ps +276 -0
- data/lib/rghost_barcode/ps/pdf417.ps +428 -0
- data/lib/rghost_barcode/ps/pharmacode.ps +69 -0
- data/lib/rghost_barcode/ps/plessey.ps +121 -0
- data/lib/rghost_barcode/ps/postnet.ps +114 -0
- data/lib/rghost_barcode/ps/qrcode.ps +530 -0
- data/lib/rghost_barcode/ps/rationalizedcodabar.ps +117 -0
- data/lib/rghost_barcode/ps/raw.ps +35 -0
- data/lib/rghost_barcode/ps/render.ps +307 -0
- data/lib/rghost_barcode/ps/render.ps~ +308 -0
- data/lib/rghost_barcode/ps/royalmail.ps +119 -0
- data/lib/rghost_barcode/ps/rss14.ps +237 -0
- data/lib/rghost_barcode/ps/rssexpanded.ps +211 -0
- data/lib/rghost_barcode/ps/rsslimited.ps +191 -0
- data/lib/rghost_barcode/ps/symbol.ps +49 -0
- data/lib/rghost_barcode/ps/upca.ps +128 -0
- data/lib/rghost_barcode/ps/upce.ps +157 -0
- data/lib/rghost_barcode/rghost_barcode_adapter.rb +249 -0
- data/lib/rghost_barcode/rghost_barcode_base.rb +210 -0
- data/lib/rghost_barcode/rghost_barcode_classes.rb +96 -0
- data/lib/rghost_barcode/rghost_barcode_examples.rb +35 -0
- data/lib/rghost_barcode/rghost_barcode_version.rb +8 -0
- data/lib/teste_main.rb +94 -0
- metadata +218 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
|
|
2
|
+
% --BEGIN RENDERER renlinear--
|
|
3
|
+
/renlinear {
|
|
4
|
+
|
|
5
|
+
0 begin % Confine variables to local scope
|
|
6
|
+
|
|
7
|
+
/args exch def % We are given some arguments
|
|
8
|
+
|
|
9
|
+
% Default options
|
|
10
|
+
/sbs [] def
|
|
11
|
+
/bhs [] def
|
|
12
|
+
/bbs [] def
|
|
13
|
+
/txt [] def
|
|
14
|
+
/barcolor (unset) def
|
|
15
|
+
/includetext false def
|
|
16
|
+
/textcolor (unset) def
|
|
17
|
+
/textxalign (unset) def
|
|
18
|
+
/textyalign (unset) def
|
|
19
|
+
/textfont (Courier) def
|
|
20
|
+
/textsize 10 def
|
|
21
|
+
/textxoffset 0 def
|
|
22
|
+
/textyoffset 0 def
|
|
23
|
+
/bordercolor (unset) def
|
|
24
|
+
/backgroundcolor (unset) def
|
|
25
|
+
/inkspread 0.15 def
|
|
26
|
+
/width 0 def
|
|
27
|
+
/barratio 1 def
|
|
28
|
+
/spaceratio 1 def
|
|
29
|
+
/showborder false def
|
|
30
|
+
/borderleft 10 def
|
|
31
|
+
/borderright 10 def
|
|
32
|
+
/bordertop 1 def
|
|
33
|
+
/borderbottom 1 def
|
|
34
|
+
/borderwidth 0.5 def
|
|
35
|
+
/guardwhitespace false def
|
|
36
|
+
/guardleftpos 0 def
|
|
37
|
+
/guardleftypos 0 def
|
|
38
|
+
/guardrightpos 0 def
|
|
39
|
+
/guardrightypos 0 def
|
|
40
|
+
/guardwidth 6 def
|
|
41
|
+
/guardheight 7 def
|
|
42
|
+
|
|
43
|
+
% Apply the renderer options
|
|
44
|
+
args {exch cvlit exch def} forall
|
|
45
|
+
|
|
46
|
+
% Parse the user options
|
|
47
|
+
opt {
|
|
48
|
+
token false eq {exit} if dup length string cvs (=) search
|
|
49
|
+
true eq {cvlit exch pop exch def} {cvlit true def} ifelse
|
|
50
|
+
} loop
|
|
51
|
+
|
|
52
|
+
/barcolor barcolor cvlit def
|
|
53
|
+
/textcolor textcolor cvlit def
|
|
54
|
+
/textxalign textxalign cvlit def
|
|
55
|
+
/textyalign textyalign cvlit def
|
|
56
|
+
/textfont textfont cvlit def
|
|
57
|
+
/textsize textsize cvr def
|
|
58
|
+
/textxoffset textxoffset cvr def
|
|
59
|
+
/textyoffset textyoffset cvr def
|
|
60
|
+
/bordercolor bordercolor cvlit def
|
|
61
|
+
/backgroundcolor backgroundcolor cvlit def
|
|
62
|
+
/inkspread inkspread cvr def
|
|
63
|
+
/width width cvr def
|
|
64
|
+
/barratio barratio cvr def
|
|
65
|
+
/spaceratio spaceratio cvr def
|
|
66
|
+
/borderleft borderleft cvr def
|
|
67
|
+
/borderright borderright cvr def
|
|
68
|
+
/bordertop bordertop cvr def
|
|
69
|
+
/borderbottom borderbottom cvr def
|
|
70
|
+
/borderwidth borderwidth cvr def
|
|
71
|
+
/guardleftpos guardleftpos cvr def
|
|
72
|
+
/guardleftypos guardleftypos cvr def
|
|
73
|
+
/guardrightpos guardrightpos cvr def
|
|
74
|
+
/guardrightypos guardrightypos cvr def
|
|
75
|
+
/guardwidth guardwidth cvr def
|
|
76
|
+
/guardheight guardheight cvr def
|
|
77
|
+
|
|
78
|
+
% Create bar elements and put them into the bars array
|
|
79
|
+
/bars sbs length 1 add 2 idiv array def
|
|
80
|
+
/x 0.00 def /maxh 0 def
|
|
81
|
+
0 1 sbs length 1 add 2 idiv 2 mul 2 sub {
|
|
82
|
+
/i exch def
|
|
83
|
+
i 2 mod 0 eq { % i is even
|
|
84
|
+
/d sbs i get barratio mul barratio sub 1 add def % d=digit*r-r+1
|
|
85
|
+
/h bhs i 2 idiv get 72 mul def % Height from bhs
|
|
86
|
+
/c d 2 div x add def % Centre of the bar = x + d/2
|
|
87
|
+
/y bbs i 2 idiv get 72 mul def % Baseline from bbs
|
|
88
|
+
/w d inkspread sub def % bar width = digit - inkspread
|
|
89
|
+
bars i 2 idiv [h c y w] put % Add the bar entry
|
|
90
|
+
h maxh gt {/maxh h def} if
|
|
91
|
+
} {
|
|
92
|
+
/d sbs i get spaceratio mul spaceratio sub 1 add def % d=digit*r-r+1
|
|
93
|
+
} ifelse
|
|
94
|
+
/x x d add def % x+=d
|
|
95
|
+
} for
|
|
96
|
+
|
|
97
|
+
gsave
|
|
98
|
+
|
|
99
|
+
currentpoint translate
|
|
100
|
+
|
|
101
|
+
% Force symbol to given width
|
|
102
|
+
width 0 ne {
|
|
103
|
+
width 72 mul x div 1 scale
|
|
104
|
+
} if
|
|
105
|
+
|
|
106
|
+
% Set RGB or CMYK color depending on length of given hex string
|
|
107
|
+
/setanycolor {
|
|
108
|
+
/anycolor exch def
|
|
109
|
+
anycolor length 6 eq {
|
|
110
|
+
(< >) 8 string copy dup 1 anycolor putinterval cvx exec {255 div} forall setrgbcolor
|
|
111
|
+
} if
|
|
112
|
+
anycolor length 8 eq {
|
|
113
|
+
(< >) 10 string copy dup 1 anycolor putinterval cvx exec {255 div} forall setcmykcolor
|
|
114
|
+
} if
|
|
115
|
+
} bind def
|
|
116
|
+
|
|
117
|
+
% Display the border and background
|
|
118
|
+
newpath
|
|
119
|
+
borderleft neg borderbottom neg moveto
|
|
120
|
+
x borderleft add borderright add 0 rlineto
|
|
121
|
+
0 maxh borderbottom add bordertop add rlineto
|
|
122
|
+
x borderleft add borderright add neg 0 rlineto
|
|
123
|
+
0 maxh borderbottom add bordertop add neg rlineto
|
|
124
|
+
closepath
|
|
125
|
+
backgroundcolor (unset) ne { gsave backgroundcolor setanycolor fill grestore } if
|
|
126
|
+
showborder {
|
|
127
|
+
gsave
|
|
128
|
+
bordercolor (unset) ne { bordercolor setanycolor } if
|
|
129
|
+
borderwidth setlinewidth stroke
|
|
130
|
+
grestore
|
|
131
|
+
} if
|
|
132
|
+
|
|
133
|
+
% Display the bars for elements in the bars array
|
|
134
|
+
gsave
|
|
135
|
+
barcolor (unset) ne { barcolor setanycolor } if
|
|
136
|
+
bars {
|
|
137
|
+
{} forall
|
|
138
|
+
newpath setlinewidth moveto 0 exch rlineto stroke
|
|
139
|
+
} forall
|
|
140
|
+
grestore
|
|
141
|
+
|
|
142
|
+
% Display the text for elements in the text array
|
|
143
|
+
textcolor (unset) ne { textcolor setanycolor } if
|
|
144
|
+
includetext {
|
|
145
|
+
textxalign (unset) eq textyalign (unset) eq and {
|
|
146
|
+
/s 0 def /f () def
|
|
147
|
+
txt {
|
|
148
|
+
{} forall
|
|
149
|
+
2 copy s ne exch f ne or {
|
|
150
|
+
2 copy /s exch def /f exch def
|
|
151
|
+
exch findfont exch scalefont setfont
|
|
152
|
+
} {
|
|
153
|
+
pop pop
|
|
154
|
+
} ifelse
|
|
155
|
+
moveto show
|
|
156
|
+
} forall
|
|
157
|
+
} {
|
|
158
|
+
textfont findfont textsize scalefont setfont
|
|
159
|
+
/txt [ txt { 0 get {} forall } forall ] def
|
|
160
|
+
/tstr txt length string def
|
|
161
|
+
0 1 txt length 1 sub { dup txt exch get tstr 3 1 roll put } for
|
|
162
|
+
/textxpos textxoffset x tstr stringwidth pop sub 2 div add def
|
|
163
|
+
textxalign (left) eq { /textxpos textxoffset def } if
|
|
164
|
+
textxalign (right) eq { /textxpos x textxoffset sub tstr stringwidth pop sub def } if
|
|
165
|
+
textxalign (offleft) eq { /textxpos tstr stringwidth pop textxoffset add neg def } if
|
|
166
|
+
textxalign (offright) eq { /textxpos x textxoffset add def } if
|
|
167
|
+
/textypos textyoffset textsize add 3 sub neg def
|
|
168
|
+
textyalign (above) eq { /textypos textyoffset maxh add 1 add def } if
|
|
169
|
+
textyalign (center) eq { /textypos textyoffset maxh textsize 4 sub sub 2 div add def } if
|
|
170
|
+
textxpos textypos moveto tstr show
|
|
171
|
+
} ifelse
|
|
172
|
+
} if
|
|
173
|
+
|
|
174
|
+
% Display the guard elements
|
|
175
|
+
guardwhitespace {
|
|
176
|
+
0.75 setlinewidth
|
|
177
|
+
guardleftpos 0 ne {
|
|
178
|
+
newpath
|
|
179
|
+
guardleftpos neg guardwidth add guardleftypos guardwidth 2 div add moveto
|
|
180
|
+
guardwidth neg guardheight -2 div rlineto
|
|
181
|
+
guardwidth guardheight -2 div rlineto
|
|
182
|
+
stroke
|
|
183
|
+
} if
|
|
184
|
+
guardrightpos 0 ne {
|
|
185
|
+
newpath
|
|
186
|
+
guardrightpos x add guardwidth sub guardrightypos guardheight 2 div add moveto
|
|
187
|
+
guardwidth guardheight -2 div rlineto
|
|
188
|
+
guardwidth neg guardheight -2 div rlineto
|
|
189
|
+
stroke
|
|
190
|
+
} if
|
|
191
|
+
} if
|
|
192
|
+
|
|
193
|
+
grestore
|
|
194
|
+
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
} bind def
|
|
198
|
+
/renlinear load 0 1 dict put
|
|
199
|
+
% --END RENDERER renlinear--
|
|
200
|
+
|
|
201
|
+
% --BEGIN RENDERER renmatrix--
|
|
202
|
+
/renmatrix {
|
|
203
|
+
|
|
204
|
+
0 begin
|
|
205
|
+
|
|
206
|
+
/args exch def
|
|
207
|
+
|
|
208
|
+
% Default options
|
|
209
|
+
/width 1 def
|
|
210
|
+
/height 1 def
|
|
211
|
+
|
|
212
|
+
% Apply the renderer options
|
|
213
|
+
args {exch cvlit exch def} forall
|
|
214
|
+
|
|
215
|
+
% Parse the user options
|
|
216
|
+
opt {
|
|
217
|
+
token false eq {exit} if dup length string cvs (=) search
|
|
218
|
+
true eq {cvlit exch pop exch def} {cvlit true def} ifelse
|
|
219
|
+
} loop
|
|
220
|
+
|
|
221
|
+
/width width cvr def
|
|
222
|
+
/height height cvr def
|
|
223
|
+
|
|
224
|
+
% Convert the bits into a string
|
|
225
|
+
/imgstr pixs length string def
|
|
226
|
+
0 1 pixs length 1 sub {
|
|
227
|
+
dup imgstr 3 1 roll pixs exch get 1 exch sub 255 mul put
|
|
228
|
+
} for
|
|
229
|
+
|
|
230
|
+
% Draw the image
|
|
231
|
+
gsave
|
|
232
|
+
currentpoint translate
|
|
233
|
+
72 width mul 72 height mul scale
|
|
234
|
+
pixx pixy 8 [ pixx 0 0 pixy neg 0 pixy ] {imgstr} image
|
|
235
|
+
grestore
|
|
236
|
+
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
} bind def
|
|
240
|
+
/renmatrix load 0 1 dict put
|
|
241
|
+
% --END RENDERER renmatrix--
|
|
242
|
+
|
|
243
|
+
% --BEGIN RENDERER renmaximatrix--
|
|
244
|
+
/renmaximatrix {
|
|
245
|
+
|
|
246
|
+
0 begin
|
|
247
|
+
|
|
248
|
+
/args exch def % We are given some arguments
|
|
249
|
+
|
|
250
|
+
% Apply the renderer options
|
|
251
|
+
args {exch cvlit exch def} forall
|
|
252
|
+
|
|
253
|
+
% Parse the user options
|
|
254
|
+
opt {
|
|
255
|
+
token false eq {exit} if dup length string cvs (=) search
|
|
256
|
+
true eq {cvlit exch pop exch def} {cvlit true def} ifelse
|
|
257
|
+
} loop
|
|
258
|
+
|
|
259
|
+
gsave
|
|
260
|
+
|
|
261
|
+
currentpoint translate
|
|
262
|
+
|
|
263
|
+
2.4945 dup scale % from 1pt to 1.88mm
|
|
264
|
+
0.5 0.5774 translate
|
|
265
|
+
|
|
266
|
+
pixs {
|
|
267
|
+
dup
|
|
268
|
+
/x exch 30 mod def
|
|
269
|
+
/y exch 30 idiv def
|
|
270
|
+
y 2 mod 0 eq {x} {x 0.5 add} ifelse
|
|
271
|
+
32 y sub 0.8661 mul
|
|
272
|
+
moveto
|
|
273
|
+
0 0.5774 rmoveto
|
|
274
|
+
-0.5 -0.2887 rlineto
|
|
275
|
+
0 -0.5774 rlineto
|
|
276
|
+
0.5 -0.2887 rlineto
|
|
277
|
+
0.5 0.2887 rlineto
|
|
278
|
+
0 0.5774 rlineto
|
|
279
|
+
-0.5 0.2887 rlineto
|
|
280
|
+
closepath fill
|
|
281
|
+
} forall
|
|
282
|
+
|
|
283
|
+
% Plot the locator symbol
|
|
284
|
+
newpath 14 13.8576 0.5774 0 360 arc closepath
|
|
285
|
+
14 13.8576 1.3359 360 0 arcn closepath fill
|
|
286
|
+
newpath 14 13.8576 2.1058 0 360 arc closepath
|
|
287
|
+
14 13.8576 2.8644 360 0 arcn closepath fill
|
|
288
|
+
newpath 14 13.8576 3.6229 0 360 arc closepath
|
|
289
|
+
14 13.8576 4.3814 360 0 arcn closepath fill
|
|
290
|
+
|
|
291
|
+
grestore
|
|
292
|
+
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
} bind def
|
|
296
|
+
/renmaximatrix load 0 1 dict put
|
|
297
|
+
% --END RENDERER renmaximatrix--
|
|
298
|
+
|
|
299
|
+
% --BEGIN DISPATCHER--
|
|
300
|
+
/barcode {
|
|
301
|
+
0 begin
|
|
302
|
+
dup (ren) get cvx exec
|
|
303
|
+
end
|
|
304
|
+
} bind def
|
|
305
|
+
/barcode load 0 1 dict put
|
|
306
|
+
% --END DISPATCHER--
|
|
307
|
+
|
|
308
|
+
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
|
|
2
|
+
% --DESC: Royal Mail 4 State Customer Code (RM4SCC)
|
|
3
|
+
% --EXAM: LE28HS9Z
|
|
4
|
+
% --EXOP: includetext includecheckintext barcolor=FF0000
|
|
5
|
+
% --RNDR: renlinear
|
|
6
|
+
/royalmail {
|
|
7
|
+
|
|
8
|
+
0 begin
|
|
9
|
+
|
|
10
|
+
/options exch def % We are given an option string
|
|
11
|
+
/useropts options def
|
|
12
|
+
/barcode exch def % We are given a barcode string
|
|
13
|
+
|
|
14
|
+
/includetext false def % Enable/disable text
|
|
15
|
+
/includecheckintext false def
|
|
16
|
+
/textfont /Courier def
|
|
17
|
+
/textsize 10 def
|
|
18
|
+
/textyoffset -7 def
|
|
19
|
+
/height 0.175 def
|
|
20
|
+
|
|
21
|
+
% Parse the input options
|
|
22
|
+
options {
|
|
23
|
+
token false eq {exit} if dup length string cvs (=) search
|
|
24
|
+
true eq {cvlit exch pop exch def} {cvlit true def} ifelse
|
|
25
|
+
} loop
|
|
26
|
+
|
|
27
|
+
/textfont textfont cvlit def
|
|
28
|
+
/textsize textsize cvr def
|
|
29
|
+
/textyoffset textyoffset cvr def
|
|
30
|
+
/height height cvr def
|
|
31
|
+
|
|
32
|
+
% Create an array containing the character mappings
|
|
33
|
+
/encs
|
|
34
|
+
[ (3300) (2211) (2301) (2310) (3201) (3210)
|
|
35
|
+
(1122) (0033) (0123) (0132) (1023) (1032)
|
|
36
|
+
(1302) (0213) (0303) (0312) (1203) (1212)
|
|
37
|
+
(1320) (0231) (0321) (0330) (1221) (1230)
|
|
38
|
+
(3102) (2013) (2103) (2112) (3003) (3012)
|
|
39
|
+
(3120) (2031) (2121) (2130) (3021) (3030)
|
|
40
|
+
(2) (3)
|
|
41
|
+
] def
|
|
42
|
+
|
|
43
|
+
% Create a string of the available characters
|
|
44
|
+
/barchars (ZUVWXY501234B6789AHCDEFGNIJKLMTOPQRS) def
|
|
45
|
+
|
|
46
|
+
/barlen barcode length def
|
|
47
|
+
/encstr barlen 4 mul 6 add string def
|
|
48
|
+
/txt barlen 1 add array def
|
|
49
|
+
|
|
50
|
+
% Put start character
|
|
51
|
+
encstr 0 encs 36 get putinterval
|
|
52
|
+
|
|
53
|
+
/checksumrow 0 def
|
|
54
|
+
/checksumcol 0 def
|
|
55
|
+
0 1 barlen 1 sub {
|
|
56
|
+
/i exch def
|
|
57
|
+
% Lookup the encoding for the each barcode character
|
|
58
|
+
barcode i 1 getinterval barchars exch search
|
|
59
|
+
pop % Discard true leaving pre
|
|
60
|
+
length /indx exch def % indx is the length of pre
|
|
61
|
+
pop pop % Discard seek and post
|
|
62
|
+
/enc encs indx get def % Get the indxth encoding
|
|
63
|
+
encstr i 4 mul 1 add enc putinterval
|
|
64
|
+
txt i [barcode i 1 getinterval i 4 mul 1 add 3.312 mul textyoffset textfont textsize] put
|
|
65
|
+
/checksumrow checksumrow indx 6 idiv add def
|
|
66
|
+
/checksumcol checksumcol indx 6 mod add def
|
|
67
|
+
} for
|
|
68
|
+
|
|
69
|
+
% Put the checksum character
|
|
70
|
+
/checksum checksumrow 6 mod 6 mul checksumcol 6 mod add def
|
|
71
|
+
/enc encs checksum get def
|
|
72
|
+
encstr barlen 4 mul 1 add enc putinterval
|
|
73
|
+
includecheckintext {
|
|
74
|
+
txt barlen [barchars checksum 1 getinterval barlen 4 mul 1 add 3.312 mul textyoffset textfont textsize] put
|
|
75
|
+
} {
|
|
76
|
+
txt barlen [( ) barlen 4 mul 1 add 3.312 mul textyoffset textfont textsize] put
|
|
77
|
+
} ifelse
|
|
78
|
+
|
|
79
|
+
% Put end character
|
|
80
|
+
encstr barlen 4 mul 5 add encs 37 get putinterval
|
|
81
|
+
|
|
82
|
+
/bbs encstr length array def
|
|
83
|
+
/bhs encstr length array def
|
|
84
|
+
0 1 encstr length 1 sub {
|
|
85
|
+
/i exch def
|
|
86
|
+
/enc encstr i 1 getinterval def
|
|
87
|
+
enc (0) eq {
|
|
88
|
+
bbs i 3 height mul 8 div put
|
|
89
|
+
bhs i 2 height mul 8 div put
|
|
90
|
+
} if
|
|
91
|
+
enc (1) eq {
|
|
92
|
+
bbs i 0 height mul 8 div put
|
|
93
|
+
bhs i 5 height mul 8 div put
|
|
94
|
+
} if
|
|
95
|
+
enc (2) eq {
|
|
96
|
+
bbs i 3 height mul 8 div put
|
|
97
|
+
bhs i 5 height mul 8 div put
|
|
98
|
+
} if
|
|
99
|
+
enc (3) eq {
|
|
100
|
+
bbs i 0 height mul 8 div put
|
|
101
|
+
bhs i 8 height mul 8 div put
|
|
102
|
+
} if
|
|
103
|
+
} for
|
|
104
|
+
|
|
105
|
+
/retval 8 dict def
|
|
106
|
+
retval (ren) (renlinear) put
|
|
107
|
+
retval (bbs) bbs put
|
|
108
|
+
retval (bhs) bhs put
|
|
109
|
+
retval (sbs) [bhs length 1 sub {1.44 1.872} repeat 1.44] put
|
|
110
|
+
includetext {
|
|
111
|
+
retval (txt) txt put
|
|
112
|
+
} if
|
|
113
|
+
retval (opt) useropts put
|
|
114
|
+
retval
|
|
115
|
+
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
} bind def
|
|
119
|
+
/royalmail load 0 1 dict put
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
|
|
2
|
+
% --DESC: Reduced Space Symbology 14 (RSS-14)
|
|
3
|
+
% --EXAM: 24012345678905
|
|
4
|
+
% --EXOP: height=0.3
|
|
5
|
+
% --RNDR: renlinear
|
|
6
|
+
/rss14 {
|
|
7
|
+
|
|
8
|
+
0 begin % Confine variables to local scope
|
|
9
|
+
|
|
10
|
+
/options exch def % We are given an option string
|
|
11
|
+
/useropts options def
|
|
12
|
+
/barcode exch def % We are given a barcode string
|
|
13
|
+
|
|
14
|
+
/height 1 def
|
|
15
|
+
/linkage false def
|
|
16
|
+
|
|
17
|
+
% Parse the input options
|
|
18
|
+
options {
|
|
19
|
+
token false eq {exit} if dup length string cvs (=) search
|
|
20
|
+
true eq {cvlit exch pop exch def} {cvlit true def} ifelse
|
|
21
|
+
} loop
|
|
22
|
+
|
|
23
|
+
% Create the human readable text
|
|
24
|
+
/txt barcode length array def
|
|
25
|
+
0 1 barcode length 1 sub {
|
|
26
|
+
/i exch def
|
|
27
|
+
txt i [barcode i 1 getinterval 0 0 () 0] put
|
|
28
|
+
} for
|
|
29
|
+
|
|
30
|
+
/height height cvr def
|
|
31
|
+
|
|
32
|
+
/getRSSwidths {
|
|
33
|
+
/oe exch def
|
|
34
|
+
/mw exch def
|
|
35
|
+
/nm exch def
|
|
36
|
+
/val exch def
|
|
37
|
+
/j 0 def /i 0 def {
|
|
38
|
+
/v () def
|
|
39
|
+
mw 1 ne {/v i mw 4 string cvrs def} if
|
|
40
|
+
0 v {48 sub add} forall 4 add nm eq {
|
|
41
|
+
/out [ 4 {1} repeat v {47 sub} forall ] v length 4 getinterval def
|
|
42
|
+
/hasone false def out {1 eq {/hasone true def} if} forall
|
|
43
|
+
oe not hasone or {
|
|
44
|
+
j val eq {exit} if
|
|
45
|
+
/j j 1 add def
|
|
46
|
+
} if
|
|
47
|
+
} if
|
|
48
|
+
/i i 1 add def
|
|
49
|
+
} loop
|
|
50
|
+
out
|
|
51
|
+
} bind def
|
|
52
|
+
|
|
53
|
+
/binval [barcode {48 sub} forall] def
|
|
54
|
+
/binval [linkage {1} {0} ifelse binval 0 13 getinterval {} forall] def
|
|
55
|
+
|
|
56
|
+
0 1 12 {
|
|
57
|
+
/i exch def
|
|
58
|
+
binval i 1 add 2 copy get binval i get 4537077 mod 10 mul add put
|
|
59
|
+
binval i binval i get 4537077 idiv put
|
|
60
|
+
} for
|
|
61
|
+
/right binval 13 get 4537077 mod def
|
|
62
|
+
binval 13 2 copy get 4537077 idiv put
|
|
63
|
+
|
|
64
|
+
/left 0 def
|
|
65
|
+
/i true def
|
|
66
|
+
0 1 13 {
|
|
67
|
+
/j exch def
|
|
68
|
+
binval j get
|
|
69
|
+
dup 0 eq i and {
|
|
70
|
+
pop
|
|
71
|
+
} {
|
|
72
|
+
/i false def
|
|
73
|
+
/left left 3 -1 roll 10 13 j sub exp cvi mul add def
|
|
74
|
+
} ifelse
|
|
75
|
+
} for
|
|
76
|
+
|
|
77
|
+
/d1 left 1597 idiv def
|
|
78
|
+
/d2 left 1597 mod def
|
|
79
|
+
/d3 right 1597 idiv def
|
|
80
|
+
/d4 right 1597 mod def
|
|
81
|
+
|
|
82
|
+
/tab164 [
|
|
83
|
+
160 0 12 4 8 1 161 1
|
|
84
|
+
960 161 10 6 6 3 80 10
|
|
85
|
+
2014 961 8 8 4 5 31 34
|
|
86
|
+
2714 2015 6 10 3 6 10 70
|
|
87
|
+
2840 2715 4 12 1 8 1 126
|
|
88
|
+
] def
|
|
89
|
+
|
|
90
|
+
/tab154 [
|
|
91
|
+
335 0 5 10 2 7 4 84
|
|
92
|
+
1035 336 7 8 4 5 20 35
|
|
93
|
+
1515 1036 9 6 6 3 48 10
|
|
94
|
+
1596 1516 11 4 8 1 81 1
|
|
95
|
+
] def
|
|
96
|
+
|
|
97
|
+
/i 0 def {
|
|
98
|
+
d1 tab164 i get le {
|
|
99
|
+
tab164 i 1 add 7 getinterval {} forall
|
|
100
|
+
/d1te exch def /d1to exch def
|
|
101
|
+
/d1mwe exch def /d1mwo exch def
|
|
102
|
+
/d1ele exch def /d1elo exch def
|
|
103
|
+
/d1gs exch def
|
|
104
|
+
exit
|
|
105
|
+
} if
|
|
106
|
+
/i i 8 add def
|
|
107
|
+
} loop
|
|
108
|
+
|
|
109
|
+
/i 0 def {
|
|
110
|
+
d2 tab154 i get le {
|
|
111
|
+
tab154 i 1 add 7 getinterval {} forall
|
|
112
|
+
/d2te exch def /d2to exch def
|
|
113
|
+
/d2mwe exch def /d2mwo exch def
|
|
114
|
+
/d2ele exch def /d2elo exch def
|
|
115
|
+
/d2gs exch def
|
|
116
|
+
exit
|
|
117
|
+
} if
|
|
118
|
+
/i i 8 add def
|
|
119
|
+
} loop
|
|
120
|
+
|
|
121
|
+
/i 0 def {
|
|
122
|
+
d3 tab164 i get le {
|
|
123
|
+
tab164 i 1 add 7 getinterval {} forall
|
|
124
|
+
/d3te exch def /d3to exch def
|
|
125
|
+
/d3mwe exch def /d3mwo exch def
|
|
126
|
+
/d3ele exch def /d3elo exch def
|
|
127
|
+
/d3gs exch def
|
|
128
|
+
exit
|
|
129
|
+
} if
|
|
130
|
+
/i i 8 add def
|
|
131
|
+
} loop
|
|
132
|
+
|
|
133
|
+
/i 0 def {
|
|
134
|
+
d4 tab154 i get le {
|
|
135
|
+
tab154 i 1 add 7 getinterval {} forall
|
|
136
|
+
/d4te exch def /d4to exch def
|
|
137
|
+
/d4mwe exch def /d4mwo exch def
|
|
138
|
+
/d4ele exch def /d4elo exch def
|
|
139
|
+
/d4gs exch def
|
|
140
|
+
exit
|
|
141
|
+
} if
|
|
142
|
+
/i i 8 add def
|
|
143
|
+
} loop
|
|
144
|
+
|
|
145
|
+
/d1wo d1 d1gs sub d1te idiv d1elo d1mwo false getRSSwidths def
|
|
146
|
+
/d1we d1 d1gs sub d1te mod d1ele d1mwe true getRSSwidths def
|
|
147
|
+
/d2wo d2 d2gs sub d2to mod d2elo d2mwo true getRSSwidths def
|
|
148
|
+
/d2we d2 d2gs sub d2to idiv d2ele d2mwe false getRSSwidths def
|
|
149
|
+
/d3wo d3 d3gs sub d3te idiv d3elo d3mwo false getRSSwidths def
|
|
150
|
+
/d3we d3 d3gs sub d3te mod d3ele d3mwe true getRSSwidths def
|
|
151
|
+
/d4wo d4 d4gs sub d4to mod d4elo d4mwo true getRSSwidths def
|
|
152
|
+
/d4we d4 d4gs sub d4to idiv d4ele d4mwe false getRSSwidths def
|
|
153
|
+
|
|
154
|
+
/d1w 8 array def
|
|
155
|
+
0 1 3 {
|
|
156
|
+
/i exch def
|
|
157
|
+
d1w i 2 mul d1wo i get put
|
|
158
|
+
d1w i 2 mul 1 add d1we i get put
|
|
159
|
+
} for
|
|
160
|
+
|
|
161
|
+
/d2w 8 array def
|
|
162
|
+
0 1 3 {
|
|
163
|
+
/i exch def
|
|
164
|
+
d2w 7 i 2 mul sub d2wo i get put
|
|
165
|
+
d2w 6 i 2 mul sub d2we i get put
|
|
166
|
+
} for
|
|
167
|
+
|
|
168
|
+
/d3w 8 array def
|
|
169
|
+
0 1 3 {
|
|
170
|
+
/i exch def
|
|
171
|
+
d3w 7 i 2 mul sub d3wo i get put
|
|
172
|
+
d3w 6 i 2 mul sub d3we i get put
|
|
173
|
+
} for
|
|
174
|
+
|
|
175
|
+
/d4w 8 array def
|
|
176
|
+
0 1 3 {
|
|
177
|
+
/i exch def
|
|
178
|
+
d4w i 2 mul d4wo i get put
|
|
179
|
+
d4w i 2 mul 1 add d4we i get put
|
|
180
|
+
} for
|
|
181
|
+
|
|
182
|
+
/widths [
|
|
183
|
+
d1w {} forall
|
|
184
|
+
d2w {} forall
|
|
185
|
+
d3w {} forall
|
|
186
|
+
d4w {} forall
|
|
187
|
+
] def
|
|
188
|
+
|
|
189
|
+
/checkweights [
|
|
190
|
+
1 3 9 27 2 6 18 54
|
|
191
|
+
58 72 24 8 29 36 12 4
|
|
192
|
+
74 51 17 32 37 65 48 16
|
|
193
|
+
64 34 23 69 49 68 46 59
|
|
194
|
+
] def
|
|
195
|
+
|
|
196
|
+
/checkwidths [
|
|
197
|
+
3 8 2 1 1 3 5 5 1 1 3 3 7 1 1
|
|
198
|
+
3 1 9 1 1 2 7 4 1 1 2 5 6 1 1
|
|
199
|
+
2 3 8 1 1 1 5 7 1 1 1 3 9 1 1
|
|
200
|
+
] def
|
|
201
|
+
|
|
202
|
+
/checksum 0 def
|
|
203
|
+
0 1 31 {
|
|
204
|
+
/i exch def
|
|
205
|
+
/checksum checksum widths i get checkweights i get mul add def
|
|
206
|
+
} for
|
|
207
|
+
/checksum checksum 79 mod def
|
|
208
|
+
checksum 8 ge {/checksum checksum 1 add def} if
|
|
209
|
+
checksum 72 ge {/checksum checksum 1 add def} if
|
|
210
|
+
/checklt checkwidths checksum 9 idiv 5 mul 5 getinterval def
|
|
211
|
+
/checkrtrev checkwidths checksum 9 mod 5 mul 5 getinterval def
|
|
212
|
+
/checkrt 5 array def
|
|
213
|
+
0 1 4 {
|
|
214
|
+
/i exch def
|
|
215
|
+
checkrt i checkrtrev 4 i sub get put
|
|
216
|
+
} for
|
|
217
|
+
|
|
218
|
+
/sbs [
|
|
219
|
+
1 d1w {} forall checklt {} forall d2w {}
|
|
220
|
+
forall d4w {} forall checkrt {} forall d3w {} forall 1 1
|
|
221
|
+
] def
|
|
222
|
+
|
|
223
|
+
% Return the arguments
|
|
224
|
+
/retval 8 dict def
|
|
225
|
+
retval (ren) (renlinear) put
|
|
226
|
+
retval (sbs) sbs put
|
|
227
|
+
retval (bhs) [sbs length 1 add 2 idiv {height} repeat] put
|
|
228
|
+
retval (bbs) [sbs length 1 add 2 idiv {0} repeat] put
|
|
229
|
+
retval (txt) txt put
|
|
230
|
+
retval (textxalign) (center) put
|
|
231
|
+
retval (opt) useropts put
|
|
232
|
+
retval
|
|
233
|
+
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
} bind def
|
|
237
|
+
/rss14 load 0 1 dict put
|