rghost_barcode 0.8
Sign up to get free protection for your applications and to get access to all the features.
- 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,128 @@
|
|
1
|
+
|
2
|
+
% --DESC: Code 11
|
3
|
+
% --EXAM: 0123456789
|
4
|
+
% --EXOP: includetext includecheck includecheckintext
|
5
|
+
% --RNDR: renlinear
|
6
|
+
/code11 {
|
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
|
15
|
+
/includetext false def
|
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
|
+
% Create an array containing the character mappings
|
34
|
+
/encs
|
35
|
+
[ (111131) (311131) (131131) (331111) (113131)
|
36
|
+
(313111) (133111) (111331) (311311) (311111)
|
37
|
+
(113111) (113311)
|
38
|
+
] def
|
39
|
+
|
40
|
+
% Create a string of the available characters
|
41
|
+
/barchars (0123456789-) def
|
42
|
+
|
43
|
+
/barlen barcode length def % Length of the code
|
44
|
+
|
45
|
+
includecheck {
|
46
|
+
barlen 10 ge {
|
47
|
+
/sbs barlen 6 mul 24 add string def
|
48
|
+
/txt barlen 2 add array def
|
49
|
+
} {
|
50
|
+
/sbs barlen 6 mul 18 add string def
|
51
|
+
/txt barlen 1 add array def
|
52
|
+
} ifelse
|
53
|
+
} {
|
54
|
+
/sbs barlen 6 mul 12 add string def
|
55
|
+
/txt barlen array def
|
56
|
+
} ifelse
|
57
|
+
|
58
|
+
% Put the start character
|
59
|
+
sbs 0 encs 10 get putinterval
|
60
|
+
|
61
|
+
/checksum1 0 def /checksum2 0 def
|
62
|
+
|
63
|
+
/xpos 8 def
|
64
|
+
0 1 barlen 1 sub {
|
65
|
+
/i exch def
|
66
|
+
% Lookup the encoding for the each barcode character
|
67
|
+
barcode i 1 getinterval barchars exch search
|
68
|
+
pop % Discard true leaving pre
|
69
|
+
length /indx exch def % indx is the length of pre
|
70
|
+
pop pop % Discard seek and post
|
71
|
+
/enc encs indx get def % Get the indxth encoding
|
72
|
+
sbs i 6 mul 6 add enc putinterval % Put encoded digit into sbs
|
73
|
+
txt i [barcode i 1 getinterval xpos textyoffset textfont textsize] put
|
74
|
+
0 1 5 { % xpos+=width of the character
|
75
|
+
/xpos exch enc exch get 48 sub xpos add def
|
76
|
+
} for
|
77
|
+
/checksum1 checksum1 barlen i sub 1 sub 10 mod 1 add indx mul add def
|
78
|
+
/checksum2 checksum2 barlen i sub 9 mod 1 add indx mul add def
|
79
|
+
} for
|
80
|
+
|
81
|
+
% Put the checksum and end characters
|
82
|
+
includecheck {
|
83
|
+
/checksum1 checksum1 11 mod def
|
84
|
+
barlen 10 ge {
|
85
|
+
/checksum2 checksum2 checksum1 add 11 mod def
|
86
|
+
sbs barlen 6 mul 6 add encs checksum1 get putinterval
|
87
|
+
sbs barlen 6 mul 12 add encs checksum2 get putinterval
|
88
|
+
includecheckintext {
|
89
|
+
txt barlen [barchars checksum1 1 getinterval xpos textyoffset textfont textsize] put
|
90
|
+
/enc encs checksum1 get def
|
91
|
+
0 1 5 { % xpos+=width of the character
|
92
|
+
/xpos exch enc exch get 48 sub xpos add def
|
93
|
+
} for
|
94
|
+
txt barlen 1 add [barchars checksum2 1 getinterval xpos textyoffset textfont textsize] put
|
95
|
+
} {
|
96
|
+
txt barlen [() xpos textyoffset textfont textsize] put
|
97
|
+
txt barlen 1 add [() xpos textyoffset textfont textsize] put
|
98
|
+
} ifelse
|
99
|
+
sbs barlen 6 mul 18 add encs 11 get putinterval
|
100
|
+
} {
|
101
|
+
sbs barlen 6 mul 6 add encs checksum1 get putinterval
|
102
|
+
includecheckintext {
|
103
|
+
txt barlen [barchars checksum1 1 getinterval xpos textyoffset textfont textsize] put
|
104
|
+
} {
|
105
|
+
txt barlen [() xpos textyoffset textfont textsize] put
|
106
|
+
} ifelse
|
107
|
+
sbs barlen 6 mul 12 add encs 11 get putinterval
|
108
|
+
} ifelse
|
109
|
+
} {
|
110
|
+
sbs barlen 6 mul 6 add encs 11 get putinterval
|
111
|
+
} ifelse
|
112
|
+
|
113
|
+
% Return the arguments
|
114
|
+
/retval 8 dict def
|
115
|
+
retval (ren) (renlinear) put
|
116
|
+
retval (sbs) [sbs {48 sub} forall] put
|
117
|
+
retval (bhs) [sbs length 1 add 2 idiv {height} repeat] put
|
118
|
+
retval (bbs) [sbs length 1 add 2 idiv {0} repeat] put
|
119
|
+
includetext {
|
120
|
+
retval (txt) txt put
|
121
|
+
} if
|
122
|
+
retval (opt) useropts put
|
123
|
+
retval
|
124
|
+
|
125
|
+
end
|
126
|
+
|
127
|
+
} bind def
|
128
|
+
/code11 load 0 1 dict put
|
@@ -0,0 +1,121 @@
|
|
1
|
+
|
2
|
+
% --DESC: Code 128
|
3
|
+
% --EXAM: ^104^102Count^0990123456789^101!
|
4
|
+
% --EXOP: includetext
|
5
|
+
% --RNDR: renlinear
|
6
|
+
/code128 {
|
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
|
+
/includetext false def % Enable/disable text
|
15
|
+
/textfont /Courier def
|
16
|
+
/textsize 10 def
|
17
|
+
/textyoffset -7 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
|
+
[ (212222) (222122) (222221) (121223) (121322) (131222) (122213)
|
34
|
+
(122312) (132212) (221213) (221312) (231212) (112232) (122132)
|
35
|
+
(122231) (113222) (123122) (123221) (223211) (221132) (221231)
|
36
|
+
(213212) (223112) (312131) (311222) (321122) (321221) (312212)
|
37
|
+
(322112) (322211) (212123) (212321) (232121) (111323) (131123)
|
38
|
+
(131321) (112313) (132113) (132311) (211313) (231113) (231311)
|
39
|
+
(112133) (112331) (132131) (113123) (113321) (133121) (313121)
|
40
|
+
(211331) (231131) (213113) (213311) (213131) (311123) (311321)
|
41
|
+
(331121) (312113) (312311) (332111) (314111) (221411) (431111)
|
42
|
+
(111224) (111422) (121124) (121421) (141122) (141221) (112214)
|
43
|
+
(112412) (122114) (122411) (142112) (142211) (241211) (221114)
|
44
|
+
(413111) (241112) (134111) (111242) (121142) (121241) (114212)
|
45
|
+
(124112) (124211) (411212) (421112) (421211) (212141) (214121)
|
46
|
+
(412121) (111143) (111341) (131141) (114113) (114311) (411113)
|
47
|
+
(411311) (113141) (114131) (311141) (411131) (211412) (211214)
|
48
|
+
(211232) (2331112)
|
49
|
+
] def
|
50
|
+
|
51
|
+
% Create a string of the available characters for alphabets A and B
|
52
|
+
/barchars ( !"#$%&'\(\)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~) def
|
53
|
+
/barlen barcode length def % Length of the code
|
54
|
+
/sbs barlen 6 mul string def % sbs is 6 times length of barcode
|
55
|
+
/txt barlen array def
|
56
|
+
|
57
|
+
/mode -1 def % A=0, B=1, C=2
|
58
|
+
/checksum barcode 1 3 getinterval cvi def % Initialise the checksum
|
59
|
+
|
60
|
+
/i 0 def /j 0 def
|
61
|
+
{ % loop
|
62
|
+
i barlen eq {exit} if
|
63
|
+
barcode i 1 getinterval (^) eq {
|
64
|
+
% indx is given by the next three characters
|
65
|
+
/indx barcode i 1 add 3 getinterval cvi def
|
66
|
+
txt j [( ) j 11 mul textyoffset textfont textsize] put
|
67
|
+
/i i 4 add def
|
68
|
+
} {
|
69
|
+
% indx depends on the mode
|
70
|
+
mode 2 eq {
|
71
|
+
/indx barcode i 2 getinterval cvi def
|
72
|
+
txt j [barcode i 2 getinterval j 11 mul textyoffset textfont textsize] put
|
73
|
+
/i i 2 add def
|
74
|
+
} {
|
75
|
+
barchars barcode i 1 getinterval search
|
76
|
+
pop % Discard true leaving pre
|
77
|
+
length /indx exch def % indx is the length of pre
|
78
|
+
pop pop % Discard seek and post
|
79
|
+
txt j [barchars indx 1 getinterval j 11 mul textyoffset textfont textsize] put
|
80
|
+
/i i 1 add def
|
81
|
+
} ifelse
|
82
|
+
} ifelse
|
83
|
+
/enc encs indx get def % Get the indxth encoding
|
84
|
+
sbs j 6 mul enc putinterval % Put encoded digit into sbs
|
85
|
+
|
86
|
+
% Update the mode
|
87
|
+
indx 101 eq indx 103 eq or {/mode 0 def} if
|
88
|
+
indx 100 eq indx 104 eq or {/mode 1 def} if
|
89
|
+
indx 99 eq indx 105 eq or {/mode 2 def} if
|
90
|
+
|
91
|
+
/checksum indx j mul checksum add def % checksum+=indx*j
|
92
|
+
/j j 1 add def
|
93
|
+
} loop
|
94
|
+
|
95
|
+
% Put the checksum character
|
96
|
+
/checksum checksum 103 mod def
|
97
|
+
sbs j 6 mul encs checksum get putinterval
|
98
|
+
|
99
|
+
% Put the end character
|
100
|
+
sbs j 6 mul 6 add encs 106 get putinterval
|
101
|
+
|
102
|
+
% Shrink sbs and txt to fit exactly
|
103
|
+
/sbs sbs 0 j 6 mul 13 add getinterval def
|
104
|
+
/txt txt 0 j getinterval def
|
105
|
+
|
106
|
+
% Return the arguments
|
107
|
+
/retval 8 dict def
|
108
|
+
retval (ren) (renlinear) put
|
109
|
+
retval (sbs) [sbs {48 sub} forall] put
|
110
|
+
retval (bhs) [sbs length 1 add 2 idiv {height} repeat] put
|
111
|
+
retval (bbs) [sbs length 1 add 2 idiv {0} repeat] put
|
112
|
+
includetext {
|
113
|
+
retval (txt) txt put
|
114
|
+
} if
|
115
|
+
retval (opt) useropts put
|
116
|
+
retval
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
} bind def
|
121
|
+
/code128 load 0 1 dict put
|
@@ -0,0 +1,106 @@
|
|
1
|
+
|
2
|
+
% --DESC: Code 25
|
3
|
+
% --EXAM: 01234567
|
4
|
+
% --EXOP: includetext includecheck includecheckintext
|
5
|
+
% --RNDR: renlinear
|
6
|
+
/code2of5 {
|
7
|
+
|
8
|
+
% Thanks to Michael Landers
|
9
|
+
|
10
|
+
0 begin % Confine variable to local scope
|
11
|
+
|
12
|
+
/options exch def % We are given an option string
|
13
|
+
/useropts options def
|
14
|
+
/barcode exch def % We are given a barcode string
|
15
|
+
|
16
|
+
/includecheck false def
|
17
|
+
/includetext false def % Enable/disable text
|
18
|
+
/includecheckintext false def
|
19
|
+
/textfont /Courier def
|
20
|
+
/textsize 10 def
|
21
|
+
/textyoffset -7 def
|
22
|
+
/height 1 def
|
23
|
+
|
24
|
+
% Parse the input options
|
25
|
+
options {
|
26
|
+
token false eq {exit} if dup length string cvs (=) search
|
27
|
+
true eq {cvlit exch pop exch def} {cvlit true def} ifelse
|
28
|
+
} loop
|
29
|
+
|
30
|
+
/textfont textfont cvlit def
|
31
|
+
/textsize textsize cvr def
|
32
|
+
/textyoffset textyoffset cvr def
|
33
|
+
/height height cvr def
|
34
|
+
|
35
|
+
% Create an array containing the character mappings
|
36
|
+
/encs
|
37
|
+
[ (1111313111) (3111111131) (1131111131) (3131111111)
|
38
|
+
(1111311131) (3111311111) (1131311111) (1111113131)
|
39
|
+
(3111113111) (1131113111) (313111) (311131)
|
40
|
+
] def
|
41
|
+
|
42
|
+
% Create a string of the available characters
|
43
|
+
/barchars (0123456789) def
|
44
|
+
|
45
|
+
/barlen barcode length def % Length of the code
|
46
|
+
|
47
|
+
includecheck {
|
48
|
+
/sbs barlen 10 mul 22 add string def
|
49
|
+
/txt barlen 1 add array def
|
50
|
+
} {
|
51
|
+
/sbs barlen 10 mul 12 add string def
|
52
|
+
/txt barlen array def
|
53
|
+
} ifelse
|
54
|
+
|
55
|
+
% Put the start character
|
56
|
+
sbs 0 encs 10 get putinterval
|
57
|
+
|
58
|
+
/checksum 0 def
|
59
|
+
|
60
|
+
0 1 barlen 1 sub {
|
61
|
+
/i exch def
|
62
|
+
% Lookup the encoding for the each barcode character
|
63
|
+
barcode i 1 getinterval barchars exch search
|
64
|
+
pop % Discard true leaving pre
|
65
|
+
length /indx exch def % indx is the length of pre
|
66
|
+
pop pop % Discard seek and post
|
67
|
+
/enc encs indx get def % Get the indxth encoding
|
68
|
+
sbs i 10 mul 6 add enc putinterval % Put encoded digit into sbs
|
69
|
+
txt i [barcode i 1 getinterval i 14 mul 10 add textyoffset textfont textsize] put
|
70
|
+
barlen i sub 2 mod 0 eq {
|
71
|
+
/checksum checksum indx add def
|
72
|
+
} {
|
73
|
+
/checksum checksum indx 3 mul add def
|
74
|
+
} ifelse
|
75
|
+
} for
|
76
|
+
|
77
|
+
% Put the checksum and end characters
|
78
|
+
includecheck {
|
79
|
+
/checksum 10 checksum 10 mod sub 10 mod def
|
80
|
+
sbs barlen 10 mul 6 add encs checksum get putinterval
|
81
|
+
sbs barlen 10 mul 16 add encs 11 get putinterval
|
82
|
+
includecheckintext {
|
83
|
+
txt barlen [barchars checksum 1 getinterval barlen 14 mul 10 add textyoffset textfont textsize] put
|
84
|
+
} {
|
85
|
+
txt barlen [( ) barlen 14 mul 10 add textyoffset textfont textsize] put
|
86
|
+
} ifelse
|
87
|
+
} {
|
88
|
+
sbs barlen 10 mul 6 add encs 11 get putinterval
|
89
|
+
} ifelse
|
90
|
+
|
91
|
+
% Return the arguments
|
92
|
+
/retval 8 dict def
|
93
|
+
retval (ren) (renlinear) put
|
94
|
+
retval (sbs) [sbs {48 sub} forall] put
|
95
|
+
retval (bhs) [sbs length 1 add 2 idiv {height} repeat] put
|
96
|
+
retval (bbs) [sbs length 1 add 2 idiv {0} repeat] put
|
97
|
+
includetext {
|
98
|
+
retval (txt) txt put
|
99
|
+
} if
|
100
|
+
retval (opt) useropts put
|
101
|
+
retval
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
} bind def
|
106
|
+
/code2of5 load 0 1 dict put
|
@@ -0,0 +1,109 @@
|
|
1
|
+
|
2
|
+
% --DESC: Code 39
|
3
|
+
% --EXAM: THIS IS CODE 39
|
4
|
+
% --EXOP: includetext includecheck includecheckintext
|
5
|
+
% --RNDR: renlinear
|
6
|
+
/code39 {
|
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
|
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
|
+
% Create an array containing the character mappings
|
34
|
+
/encs
|
35
|
+
[ (1113313111) (3113111131) (1133111131) (3133111111) (1113311131)
|
36
|
+
(3113311111) (1133311111) (1113113131) (3113113111) (1133113111)
|
37
|
+
(3111131131) (1131131131) (3131131111) (1111331131) (3111331111)
|
38
|
+
(1131331111) (1111133131) (3111133111) (1131133111) (1111333111)
|
39
|
+
(3111111331) (1131111331) (3131111311) (1111311331) (3111311311)
|
40
|
+
(1131311311) (1111113331) (3111113311) (1131113311) (1111313311)
|
41
|
+
(3311111131) (1331111131) (3331111111) (1311311131) (3311311111)
|
42
|
+
(1331311111) (1311113131) (3311113111) (1331113111) (1313131111)
|
43
|
+
(1313111311) (1311131311) (1113131311) (1311313111)
|
44
|
+
] def
|
45
|
+
|
46
|
+
% Create a string of the available characters
|
47
|
+
/barchars (0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%*) def
|
48
|
+
|
49
|
+
/barlen barcode length def % Length of the code
|
50
|
+
|
51
|
+
includecheck {
|
52
|
+
/sbs barlen 10 mul 30 add string def
|
53
|
+
/txt barlen 3 add array def
|
54
|
+
} {
|
55
|
+
/sbs barlen 10 mul 20 add string def
|
56
|
+
/txt barlen 2 add array def
|
57
|
+
} ifelse
|
58
|
+
|
59
|
+
/checksum 0 def
|
60
|
+
|
61
|
+
% Put the start character
|
62
|
+
sbs 0 encs 43 get putinterval
|
63
|
+
txt 0 [(*) 0 textyoffset textfont textsize] put
|
64
|
+
|
65
|
+
0 1 barlen 1 sub {
|
66
|
+
/i exch def
|
67
|
+
% Lookup the encoding for the each barcode character
|
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 10 mul 10 add enc putinterval % Put encoded digit into sbs
|
74
|
+
txt i 1 add [barcode i 1 getinterval i 1 add 16 mul textyoffset textfont textsize] put
|
75
|
+
/checksum checksum indx add def
|
76
|
+
} for
|
77
|
+
|
78
|
+
% Put the checksum and end characters
|
79
|
+
includecheck {
|
80
|
+
/checksum checksum 43 mod def
|
81
|
+
sbs barlen 10 mul 10 add encs checksum get putinterval
|
82
|
+
includecheckintext {
|
83
|
+
txt barlen 1 add [barchars checksum 1 getinterval barlen 1 add 16 mul textyoffset textfont textsize] put
|
84
|
+
} {
|
85
|
+
txt barlen 1 add [() barlen 1 add 16 mul textyoffset textfont textsize] put
|
86
|
+
} ifelse
|
87
|
+
sbs barlen 10 mul 20 add encs 43 get putinterval
|
88
|
+
txt barlen 2 add [(*) barlen 2 add 16 mul textyoffset textfont textsize] put
|
89
|
+
} {
|
90
|
+
sbs barlen 10 mul 10 add encs 43 get putinterval
|
91
|
+
txt barlen 1 add [(*) barlen 1 add 16 mul textyoffset textfont textsize] put
|
92
|
+
} ifelse
|
93
|
+
|
94
|
+
% Return the arguments
|
95
|
+
/retval 8 dict def
|
96
|
+
retval (ren) (renlinear) put
|
97
|
+
retval (sbs) [sbs {48 sub} forall] put
|
98
|
+
retval (bhs) [sbs length 1 add 2 idiv {height} repeat] put
|
99
|
+
retval (bbs) [sbs length 1 add 2 idiv {0} repeat] put
|
100
|
+
includetext {
|
101
|
+
retval (txt) txt put
|
102
|
+
} if
|
103
|
+
retval (opt) useropts put
|
104
|
+
retval
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
} bind def
|
109
|
+
/code39 load 0 1 dict put
|