rghost_barcode 0.8 → 0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. data/lib/rghost_barcode.rb +7 -5
  2. data/lib/rghost_barcode/ps/barcode_base.ps +17090 -0
  3. data/lib/rghost_barcode/rghost_barcode_adapter.rb +22 -226
  4. data/lib/rghost_barcode/rghost_barcode_base.rb +12 -14
  5. data/lib/rghost_barcode/rghost_barcode_types.rb +86 -0
  6. data/lib/rghost_barcode/rghost_barcode_version.rb +2 -2
  7. metadata +30 -177
  8. data/lib/doc/classes/RGhost.html +0 -109
  9. data/lib/doc/classes/RGhost/Barcode.html +0 -147
  10. data/lib/doc/classes/RGhost/Barcode/Auspost.html +0 -113
  11. data/lib/doc/classes/RGhost/Barcode/Azteccode.html +0 -113
  12. data/lib/doc/classes/RGhost/Barcode/Base.html +0 -266
  13. data/lib/doc/classes/RGhost/Barcode/Base.src/M000004.html +0 -34
  14. data/lib/doc/classes/RGhost/Barcode/Base.src/M000005.html +0 -30
  15. data/lib/doc/classes/RGhost/Barcode/Base.src/M000006.html +0 -20
  16. data/lib/doc/classes/RGhost/Barcode/Border.html +0 -170
  17. data/lib/doc/classes/RGhost/Barcode/Border.src/M000001.html +0 -27
  18. data/lib/doc/classes/RGhost/Barcode/Code11.html +0 -113
  19. data/lib/doc/classes/RGhost/Barcode/Code128.html +0 -113
  20. data/lib/doc/classes/RGhost/Barcode/Code2of5.html +0 -113
  21. data/lib/doc/classes/RGhost/Barcode/Code39.html +0 -113
  22. data/lib/doc/classes/RGhost/Barcode/Code93.html +0 -113
  23. data/lib/doc/classes/RGhost/Barcode/Datamatrix.html +0 -113
  24. data/lib/doc/classes/RGhost/Barcode/Ean13.html +0 -113
  25. data/lib/doc/classes/RGhost/Barcode/Ean2.html +0 -113
  26. data/lib/doc/classes/RGhost/Barcode/Ean5.html +0 -113
  27. data/lib/doc/classes/RGhost/Barcode/Ean8.html +0 -113
  28. data/lib/doc/classes/RGhost/Barcode/Guard.html +0 -174
  29. data/lib/doc/classes/RGhost/Barcode/Guard.src/M000003.html +0 -27
  30. data/lib/doc/classes/RGhost/Barcode/Interleaved2of5.html +0 -113
  31. data/lib/doc/classes/RGhost/Barcode/Isbn.html +0 -113
  32. data/lib/doc/classes/RGhost/Barcode/Kix.html +0 -113
  33. data/lib/doc/classes/RGhost/Barcode/Maxicode.html +0 -113
  34. data/lib/doc/classes/RGhost/Barcode/Msi.html +0 -113
  35. data/lib/doc/classes/RGhost/Barcode/Onecode.html +0 -113
  36. data/lib/doc/classes/RGhost/Barcode/Parameter.html +0 -262
  37. data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000007.html +0 -20
  38. data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000008.html +0 -18
  39. data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000009.html +0 -18
  40. data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000010.html +0 -18
  41. data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000011.html +0 -18
  42. data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000012.html +0 -24
  43. data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000013.html +0 -18
  44. data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000014.html +0 -18
  45. data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000015.html +0 -16
  46. data/lib/doc/classes/RGhost/Barcode/Pdf417.html +0 -113
  47. data/lib/doc/classes/RGhost/Barcode/Pharmacode.html +0 -113
  48. data/lib/doc/classes/RGhost/Barcode/Plessey.html +0 -113
  49. data/lib/doc/classes/RGhost/Barcode/Postnet.html +0 -113
  50. data/lib/doc/classes/RGhost/Barcode/Qrcode.html +0 -113
  51. data/lib/doc/classes/RGhost/Barcode/Rationalizedcodabar.html +0 -113
  52. data/lib/doc/classes/RGhost/Barcode/Raw.html +0 -113
  53. data/lib/doc/classes/RGhost/Barcode/Royalmail.html +0 -113
  54. data/lib/doc/classes/RGhost/Barcode/Rss14.html +0 -113
  55. data/lib/doc/classes/RGhost/Barcode/Rssexpanded.html +0 -113
  56. data/lib/doc/classes/RGhost/Barcode/Rsslimited.html +0 -113
  57. data/lib/doc/classes/RGhost/Barcode/Symbol.html +0 -113
  58. data/lib/doc/classes/RGhost/Barcode/Text.html +0 -193
  59. data/lib/doc/classes/RGhost/Barcode/Text.src/M000002.html +0 -30
  60. data/lib/doc/classes/RGhost/Barcode/Upca.html +0 -113
  61. data/lib/doc/classes/RGhost/Barcode/Upce.html +0 -113
  62. data/lib/doc/classes/RGhost/Config.html +0 -150
  63. data/lib/doc/classes/RGhost/Config.src/M000016.html +0 -45
  64. data/lib/doc/classes/RGhost/Document.html +0 -704
  65. data/lib/doc/classes/RGhost/Document.src/M000017.html +0 -19
  66. data/lib/doc/classes/RGhost/Document.src/M000018.html +0 -18
  67. data/lib/doc/classes/RGhost/Document.src/M000019.html +0 -18
  68. data/lib/doc/classes/RGhost/Document.src/M000020.html +0 -18
  69. data/lib/doc/classes/RGhost/Document.src/M000021.html +0 -18
  70. data/lib/doc/classes/RGhost/Document.src/M000022.html +0 -18
  71. data/lib/doc/classes/RGhost/Document.src/M000023.html +0 -18
  72. data/lib/doc/classes/RGhost/Document.src/M000024.html +0 -18
  73. data/lib/doc/classes/RGhost/Document.src/M000025.html +0 -18
  74. data/lib/doc/classes/RGhost/Document.src/M000026.html +0 -18
  75. data/lib/doc/classes/RGhost/Document.src/M000027.html +0 -18
  76. data/lib/doc/classes/RGhost/Document.src/M000028.html +0 -18
  77. data/lib/doc/classes/RGhost/Document.src/M000029.html +0 -18
  78. data/lib/doc/classes/RGhost/Document.src/M000030.html +0 -18
  79. data/lib/doc/classes/RGhost/Document.src/M000031.html +0 -18
  80. data/lib/doc/classes/RGhost/Document.src/M000032.html +0 -18
  81. data/lib/doc/classes/RGhost/Document.src/M000033.html +0 -18
  82. data/lib/doc/classes/RGhost/Document.src/M000034.html +0 -18
  83. data/lib/doc/classes/RGhost/Document.src/M000035.html +0 -18
  84. data/lib/doc/classes/RGhost/Document.src/M000036.html +0 -18
  85. data/lib/doc/classes/RGhost/Document.src/M000037.html +0 -18
  86. data/lib/doc/classes/RGhost/Document.src/M000038.html +0 -18
  87. data/lib/doc/classes/RGhost/Document.src/M000039.html +0 -18
  88. data/lib/doc/classes/RGhost/Document.src/M000040.html +0 -18
  89. data/lib/doc/classes/RGhost/Document.src/M000041.html +0 -18
  90. data/lib/doc/classes/RGhost/Document.src/M000042.html +0 -18
  91. data/lib/doc/classes/RGhost/Document.src/M000043.html +0 -18
  92. data/lib/doc/classes/RGhost/Document.src/M000044.html +0 -18
  93. data/lib/doc/classes/RGhost/Document.src/M000045.html +0 -18
  94. data/lib/doc/classes/RGhost/Document.src/M000046.html +0 -18
  95. data/lib/doc/classes/RGhost/Document.src/M000047.html +0 -18
  96. data/lib/doc/classes/RGhost/Document.src/M000048.html +0 -18
  97. data/lib/doc/created.rid +0 -1
  98. data/lib/doc/files/rghost_barcode/rghost_barcode_adapter_rb.html +0 -101
  99. data/lib/doc/files/rghost_barcode/rghost_barcode_base_rb.html +0 -101
  100. data/lib/doc/files/rghost_barcode/rghost_barcode_classes_rb.html +0 -101
  101. data/lib/doc/files/rghost_barcode/rghost_barcode_examples_rb.html +0 -101
  102. data/lib/doc/files/rghost_barcode/rghost_barcode_version_rb.html +0 -101
  103. data/lib/doc/files/rghost_barcode_rb.html +0 -111
  104. data/lib/doc/files/teste_main_rb.html +0 -110
  105. data/lib/doc/fr_class_index.html +0 -67
  106. data/lib/doc/fr_file_index.html +0 -33
  107. data/lib/doc/fr_method_index.html +0 -74
  108. data/lib/doc/index.html +0 -24
  109. data/lib/rghost_barcode/ps/auspost.ps +0 -192
  110. data/lib/rghost_barcode/ps/azteccode.ps +0 -357
  111. data/lib/rghost_barcode/ps/barcode_template.eps +0 -1193
  112. data/lib/rghost_barcode/ps/code11.ps +0 -128
  113. data/lib/rghost_barcode/ps/code128.ps +0 -121
  114. data/lib/rghost_barcode/ps/code2of5.ps +0 -106
  115. data/lib/rghost_barcode/ps/code39.ps +0 -109
  116. data/lib/rghost_barcode/ps/code93.ps +0 -117
  117. data/lib/rghost_barcode/ps/datamatrix.ps +0 -328
  118. data/lib/rghost_barcode/ps/ean13.ps +0 -183
  119. data/lib/rghost_barcode/ps/ean2.ps +0 -101
  120. data/lib/rghost_barcode/ps/ean5.ps +0 -116
  121. data/lib/rghost_barcode/ps/ean8.ps +0 -101
  122. data/lib/rghost_barcode/ps/interleaved2of5.ps +0 -132
  123. data/lib/rghost_barcode/ps/isbn.ps +0 -118
  124. data/lib/rghost_barcode/ps/kix.ps +0 -98
  125. data/lib/rghost_barcode/ps/maxicode.ps +0 -307
  126. data/lib/rghost_barcode/ps/msi.ps +0 -104
  127. data/lib/rghost_barcode/ps/onecode.ps +0 -276
  128. data/lib/rghost_barcode/ps/pdf417.ps +0 -428
  129. data/lib/rghost_barcode/ps/pharmacode.ps +0 -69
  130. data/lib/rghost_barcode/ps/plessey.ps +0 -121
  131. data/lib/rghost_barcode/ps/postnet.ps +0 -114
  132. data/lib/rghost_barcode/ps/qrcode.ps +0 -530
  133. data/lib/rghost_barcode/ps/rationalizedcodabar.ps +0 -117
  134. data/lib/rghost_barcode/ps/raw.ps +0 -35
  135. data/lib/rghost_barcode/ps/render.ps +0 -307
  136. data/lib/rghost_barcode/ps/render.ps~ +0 -308
  137. data/lib/rghost_barcode/ps/royalmail.ps +0 -119
  138. data/lib/rghost_barcode/ps/rss14.ps +0 -237
  139. data/lib/rghost_barcode/ps/rssexpanded.ps +0 -211
  140. data/lib/rghost_barcode/ps/rsslimited.ps +0 -191
  141. data/lib/rghost_barcode/ps/symbol.ps +0 -49
  142. data/lib/rghost_barcode/ps/upca.ps +0 -128
  143. data/lib/rghost_barcode/ps/upce.ps +0 -157
  144. data/lib/rghost_barcode/rghost_barcode_classes.rb +0 -96
  145. data/lib/rghost_barcode/rghost_barcode_examples.rb +0 -35
  146. data/lib/teste_main.rb +0 -94
@@ -1,308 +0,0 @@
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
-
@@ -1,119 +0,0 @@
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
@@ -1,237 +0,0 @@
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