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,101 +0,0 @@
1
-
2
- % --DESC: EAN-2 (2 digit addon)
3
- % --EXAM: 05
4
- % --EXOP: includetext guardwhitespace
5
- % --RNDR: renlinear
6
- /ean2 {
7
-
8
- 0 begin
9
-
10
- /options exch def % We are given an options string
11
- /useropts options def
12
- /barcode exch def % We are given a barcode string
13
-
14
- /includetext false def % Enable/disable text
15
- /textfont /Helvetica def
16
- /textsize 12 def
17
- /textyoffset (unset) def
18
- /height 0.7 def
19
-
20
- % Parse the input options
21
- options {
22
- token false eq {exit} if dup length string cvs (=) search
23
- true eq {cvlit exch pop exch def} {cvlit true def} ifelse
24
- } loop
25
-
26
- /textfont textfont cvlit def
27
- /textsize textsize cvr def
28
- /height height cvr def
29
- textyoffset (unset) eq {
30
- /textyoffset height 72 mul 1 add def
31
- } {
32
- /textyoffset textyoffset cvr def
33
- } ifelse
34
-
35
- /barlen barcode length def % Length of the code
36
-
37
- % Create an array containing the character mappings
38
- /encs
39
- [ (3211) (2221) (2122) (1411) (1132)
40
- (1231) (1114) (1312) (1213) (3112)
41
- (112) (11)
42
- ] def
43
-
44
- % Create a string of the available characters
45
- /barchars (0123456789) def
46
-
47
- % Determine the mirror map based on mod 4 checksum
48
- /mirrormap [(00) (01) (10) (11)] barcode 0 2 getinterval cvi 4 mod get def
49
-
50
- /sbs 13 string def
51
- /txt 2 array def
52
-
53
- 0 1 1 {
54
- /i exch def
55
-
56
- % Prefix with either a start character or separator character
57
- i 0 eq {
58
- sbs 0 encs 10 get putinterval
59
- } {
60
- sbs i 1 sub 6 mul 7 add encs 11 get putinterval
61
- } ifelse
62
-
63
- % Lookup the encoding for the barcode character
64
- barcode i 1 getinterval barchars exch search
65
- pop % Discard true leaving pre
66
- length /indx exch def % indx is the length of pre
67
- pop pop % Discard seek and post
68
- /enc encs indx get def % Get the indxth encoding
69
- mirrormap i get 49 eq { % Reverse enc if 1 in this position in mirrormap
70
- /enclen enc length def
71
- /revenc enclen string def
72
- 0 1 enclen 1 sub {
73
- /j exch def
74
- /char enc j get def
75
- revenc enclen j sub 1 sub char put
76
- } for
77
- /enc revenc def
78
- } if
79
- sbs i 6 mul 3 add enc putinterval % Put encoded digit into sbs
80
- txt i [barcode i 1 getinterval i 1 sub 9 mul 13 add textyoffset textfont textsize] put
81
- } for
82
-
83
- % Return the arguments
84
- /retval 8 dict def
85
- retval (ren) (renlinear) put
86
- retval (sbs) [sbs {48 sub} forall] put
87
- retval (bhs) [12{height}repeat] put
88
- retval (bbs) [12{0}repeat] put
89
- includetext {
90
- retval (txt) txt put
91
- } if
92
- retval (opt) useropts put
93
- retval (guardrightpos) 10 put
94
- retval (guardrightypos) textyoffset 4 add put
95
- retval (bordertop) 10 put
96
- retval
97
-
98
- end
99
-
100
- } bind def
101
- /ean2 load 0 1 dict put
@@ -1,116 +0,0 @@
1
-
2
- % --DESC: EAN-5 (5 digit addon)
3
- % --EXAM: 90200
4
- % --EXOP: includetext guardwhitespace
5
- % --RNDR: renlinear
6
- /ean5 {
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
- /textfont /Helvetica def
16
- /textsize 12 def
17
- /textyoffset (unset) def
18
- /height 0.7 def
19
-
20
- % Parse the input options
21
- options {
22
- token false eq {exit} if dup length string cvs (=) search
23
- true eq {cvlit exch pop exch def} {cvlit true def} ifelse
24
- } loop
25
-
26
- /textfont textfont cvlit def
27
- /textsize textsize cvr def
28
- /height height cvr def
29
- textyoffset (unset) eq {
30
- /textyoffset height 72 mul 1 add def
31
- } {
32
- /textyoffset textyoffset cvr def
33
- } ifelse
34
-
35
- /barlen barcode length def % Length of the code
36
-
37
- % Create an array containing the character mappings
38
- /encs
39
- [ (3211) (2221) (2122) (1411) (1132)
40
- (1231) (1114) (1312) (1213) (3112)
41
- (112) (11)
42
- ] def
43
-
44
- % Create a string of the available characters
45
- /barchars (0123456789) def
46
-
47
- % Determine the mirror map based on mod 10 checksum
48
- /mirrormaps
49
- [ (11000) (10100) (10010) (10001) (01100)
50
- (00110) (00011) (01010) (01001) (00101)
51
- ] def
52
- /checksum 0 def
53
- 0 1 4 {
54
- /i exch def
55
- /barchar barcode i get 48 sub def
56
- i 2 mod 0 eq {
57
- /checksum barchar 3 mul checksum add def
58
- } {
59
- /checksum barchar 9 mul checksum add def
60
- } ifelse
61
- } for
62
- /checksum checksum 10 mod def
63
- /mirrormap mirrormaps checksum get def
64
-
65
- /sbs 31 string def
66
- /txt 5 array def
67
-
68
- 0 1 4 {
69
- /i exch def
70
-
71
- % Prefix with either a start character or separator character
72
- i 0 eq {
73
- sbs 0 encs 10 get putinterval
74
- } {
75
- sbs i 1 sub 6 mul 7 add encs 11 get putinterval
76
- } ifelse
77
-
78
- % Lookup the encoding for the barcode character
79
- barcode i 1 getinterval barchars exch search
80
- pop % Discard true leaving pre
81
- length /indx exch def % indx is the length of pre
82
- pop pop % Discard seek and post
83
- /enc encs indx get def % Get the indxth encoding
84
- mirrormap i get 49 eq { % Reverse enc if 1 in this position in mirrormap
85
- /enclen enc length def
86
- /revenc enclen string def
87
- 0 1 enclen 1 sub {
88
- /j exch def
89
- /char enc j get def
90
- revenc enclen j sub 1 sub char put
91
- } for
92
- /enc revenc def
93
- } if
94
- sbs i 6 mul 3 add enc putinterval % Put encoded digit into sbs
95
- txt i [barcode i 1 getinterval i 1 sub 9 mul 13 add textyoffset textfont textsize] put
96
- } for
97
-
98
- % Return the arguments
99
- /retval 8 dict def
100
- retval (ren) (renlinear) put
101
- retval (sbs) [sbs {48 sub} forall] put
102
- retval (bhs) [16{height}repeat] put
103
- retval (bbs) [16{0}repeat] put
104
- includetext {
105
- retval (txt) txt put
106
- } if
107
- retval (opt) useropts put
108
- retval (guardrightpos) 10 put
109
- retval (guardrightypos) textyoffset 4 add put
110
- retval (bordertop) 10 put
111
- retval
112
-
113
- end
114
-
115
- } bind def
116
- /ean5 load 0 1 dict put
@@ -1,101 +0,0 @@
1
-
2
- % --DESC: EAN-8
3
- % --EXAM: 01335583
4
- % --EXOP: includetext guardwhitespace height=0.5
5
- % --RNDR: renlinear
6
- /ean8 {
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
- /textfont /Helvetica def
16
- /textsize 12 def
17
- /textyoffset -4 def
18
- /height 1 def
19
-
20
- % Parse the input options
21
- options {
22
- token false eq {exit} if dup length string cvs (=) search
23
- true eq {cvlit exch pop exch def} {cvlit true def} ifelse
24
- } loop
25
-
26
- /textfont textfont cvlit def
27
- /textsize textsize cvr def
28
- /textyoffset textyoffset cvr def
29
- /height height cvr def
30
-
31
- % Create an array containing the character mappings
32
- /encs
33
- [ (3211) (2221) (2122) (1411) (1132)
34
- (1231) (1114) (1312) (1213) (3112)
35
- (111) (11111) (111)
36
- ] def
37
-
38
- % Create a string of the available characters
39
- /barchars (0123456789) def
40
-
41
- /barlen barcode length def % Length of the code
42
- /sbs barlen 4 mul 11 add string def
43
- /txt barlen array def
44
-
45
- % Put the start character
46
- sbs 0 encs 10 get putinterval
47
-
48
- % Left side
49
- 0 1 3 {
50
- % Lookup the encoding for the each barcode character
51
- /i exch def
52
- barcode i 1 getinterval barchars exch search
53
- pop % Discard true leaving pre
54
- length /indx exch def % indx is the length of pre
55
- pop pop % Discard seek and post
56
- /enc encs indx get def % Get the indxth encoding
57
- sbs i 4 mul 3 add enc putinterval % Put encoded digit into sbs
58
- txt i [barcode i 1 getinterval i 7 mul 4 add textyoffset textfont textsize] put
59
- } for
60
-
61
- % Put the middle character
62
- sbs 4 4 mul 3 add encs 11 get putinterval
63
-
64
- % Right side
65
- 4 1 7 {
66
- % Lookup the encoding for the each barcode character
67
- /i exch def
68
- barcode i 1 getinterval barchars exch search
69
- pop % Discard true leaving pre
70
- length /indx exch def % indx is the length of pre
71
- pop pop % Discard seek and post
72
- /enc encs indx get def % Get the indxth encoding
73
- sbs i 4 mul 8 add enc putinterval % Put encoded digit into sbs
74
- txt i [barcode i 1 getinterval i 7 mul 8 add textyoffset textfont textsize] put
75
- } for
76
-
77
- % Put the end character
78
- sbs barlen 4 mul 8 add encs 12 get putinterval
79
-
80
- % Return the arguments
81
- /retval 8 dict def
82
- retval (ren) (renlinear) put
83
- retval (sbs) [sbs {48 sub} forall] put
84
- includetext {
85
- retval (bhs) [height height 8{height .075 sub}repeat height height 8{height .075 sub}repeat height height] put
86
- retval (bbs) [0 0 8{.075}repeat 0 0 8{.075}repeat 0 0] put
87
- retval (txt) txt put
88
- } {
89
- retval (bhs) [22{height}repeat] put
90
- retval (bbs) [22{0}repeat] put
91
- } ifelse
92
- retval (opt) useropts put
93
- retval (guardleftpos) 10 put
94
- retval (guardrightpos) 10 put
95
- retval (borderbottom) 5 put
96
- retval
97
-
98
- end
99
-
100
- } bind def
101
- /ean8 load 0 1 dict put
@@ -1,132 +0,0 @@
1
-
2
- % --DESC: Interleaved 2 of 5 (ITF)
3
- % --EXAM: 24012345678905
4
- % --EXOP: showborder borderwidth=4 borderleft=15 borderright=15 height=0.5 includecheck includetext includecheckintext textyoffset=-10
5
- % --RNDR: renlinear
6
- /interleaved2of5 {
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
- /includecheck false def % Enable/disable checkdigit
15
- /includetext false def % Enable/disable text
16
- /includecheckintext false def
17
- /textfont /Courier def
18
- /textsize 10 def
19
- /textyoffset -7 def
20
- /height 1 def
21
-
22
- % Parse the input options
23
- options {
24
- token false eq {exit} if dup length string cvs (=) search
25
- true eq {cvlit exch pop exch def} {cvlit true def} ifelse
26
- } loop
27
-
28
- /textfont textfont cvlit def
29
- /textsize textsize cvr def
30
- /textyoffset textyoffset cvr def
31
- /height height cvr def
32
-
33
- /barlen barcode length def % Length of the code
34
-
35
- % Prefix 0 to barcode if length is even and including checkdigit
36
- % or length is odd and not including checkdigit
37
- barlen 2 mod 0 eq includecheck and % even & includecheck
38
- barlen 2 mod 0 ne includecheck not and or { % odd & !includecheck
39
- /pad barlen 1 add string def % Create pad one bigger than barcode
40
- pad 0 48 put % Put ascii 0 at start of pad
41
- pad 1 barcode putinterval % Add barcode to the end of pad
42
- /barcode pad def % barcode=pad
43
- /barlen barlen 1 add def % barlen++
44
- } if
45
-
46
- % Add checksum to end of barcode
47
- includecheck {
48
- /checksum 0 def
49
- 0 1 barlen 1 sub {
50
- /i exch def
51
- i 2 mod 0 eq {
52
- /checksum checksum barcode i get 48 sub 3 mul add def
53
- } {
54
- /checksum checksum barcode i get 48 sub add def
55
- } ifelse
56
- } for
57
- /checksum 10 checksum 10 mod sub 10 mod def
58
- /pad barlen 1 add string def % Create pad one bigger than barcode
59
- pad 0 barcode putinterval % Add barcode to the start of pad
60
- pad barlen checksum 48 add put % Add checksum to end of pad
61
- /barcode pad def % barcode=pad
62
- /barlen barlen 1 add def % barlen++
63
- } if
64
-
65
- % Create an array containing the character mappings
66
- /encs
67
- [ (11331) (31113) (13113) (33111) (11313)
68
- (31311) (13311) (11133) (31131) (13131)
69
- (1111) (3111)
70
- ] def
71
-
72
- % Create a string of the available characters
73
- /barchars (0123456789) def
74
- /sbs barlen 5 mul 8 add string def
75
- /txt barlen array def
76
-
77
- % Put the start character
78
- sbs 0 encs 10 get putinterval
79
-
80
- 0 2 barlen 1 sub {
81
- /i exch def
82
- % Lookup the encodings for two consecutive barcode characters
83
- barcode i 1 getinterval barchars exch search
84
- pop % Discard true leaving pre
85
- length /indx exch def % indx is the length of pre
86
- pop pop % Discard seek and post
87
- /enca encs indx get def % Get the indxth encoding
88
-
89
- barcode i 1 add 1 getinterval barchars exch search
90
- pop % Discard true leaving pre
91
- length /indx exch def % indx is the length of pre
92
- pop pop % Discard seek and post
93
- /encb encs indx get def % Get the indxth encoding
94
-
95
- % Interleave the two character encodings
96
- /intl enca length 2 mul string def
97
- 0 1 enca length 1 sub {
98
- /j exch def
99
- /achar enca j get def
100
- /bchar encb j get def
101
- intl j 2 mul achar put
102
- intl j 2 mul 1 add bchar put
103
- } for
104
-
105
- sbs i 5 mul 4 add intl putinterval % Put encoded digit into sbs
106
- txt i [barcode i 1 getinterval i 9 mul 4 add textyoffset textfont textsize] put
107
- includecheck includecheckintext not and barlen 2 sub i eq and {
108
- txt i 1 add [( ) i 1 add 9 mul 4 add textyoffset textfont textsize] put
109
- } {
110
- txt i 1 add [barcode i 1 add 1 getinterval i 1 add 9 mul 4 add textyoffset textfont textsize] put
111
- } ifelse
112
- } for
113
-
114
- % Put the end character
115
- sbs barlen 5 mul 4 add encs 11 get putinterval
116
-
117
- % Return the arguments
118
- /retval 8 dict def
119
- retval (ren) (renlinear) put
120
- retval (sbs) [sbs {48 sub} forall] put
121
- retval (bhs) [sbs length 1 add 2 idiv {height} repeat] put
122
- retval (bbs) [sbs length 1 add 2 idiv {0} repeat] put
123
- includetext {
124
- retval (txt) txt put
125
- } if
126
- retval (opt) useropts put
127
- retval
128
-
129
- end
130
-
131
- } bind def
132
- /interleaved2of5 load 0 1 dict put