|
1 | 1 | % Barcode Writer in Pure PostScript |
2 | 2 | % https://bwipp.terryburton.co.uk |
3 | 3 | % |
4 | | -% Copyright (c) 2004-2024 Terry Burton |
| 4 | +% Copyright (c) 2004-2025 Terry Burton |
5 | 5 | % |
6 | 6 | % $Id$ |
7 | 7 | % |
|
38 | 38 | currentglobal |
39 | 39 | true setglobal |
40 | 40 | /setpacking where {pop currentpacking true setpacking} if |
41 | | -10 dict |
42 | | -dup /loadctx dup /uk.co.terryburton.bwipp findresource put |
43 | | -dup /unloadctx dup /uk.co.terryburton.bwipp findresource put |
| 41 | +50 dict |
44 | 42 | dup /raiseerror dup /uk.co.terryburton.bwipp findresource put |
45 | 43 | dup /processoptions dup /uk.co.terryburton.bwipp findresource put |
46 | 44 | dup /renlinear dup /uk.co.terryburton.bwipp findresource put |
47 | 45 | dup /renmatrix dup /uk.co.terryburton.bwipp findresource put |
48 | 46 | begin |
49 | | -/symbol { |
50 | 47 |
|
51 | | - 20 dict begin |
| 48 | +/symbol.fimasbs [2.25 2.25 2.25 11.25 2.25 11.25 2.25 2.25 2.25] readonly def |
| 49 | +/symbol.fimabhs [//symbol.fimasbs length 2 idiv 1 add {.625} repeat] readonly def |
| 50 | +/symbol.fimabbs [//symbol.fimasbs length 2 idiv 1 add {0 } repeat] readonly def |
52 | 51 |
|
53 | | - /ctx null def |
54 | | - /dontdraw false def |
55 | | - |
56 | | - //processoptions exec /options exch def |
57 | | - /barcode exch def |
| 52 | +/symbol.fimbsbs [2.25 6.75 2.25 2.25 2.25 6.25 2.25 2.25 2.25 6.75 2.25] readonly def |
| 53 | +/symbol.fimbbhs [//symbol.fimbsbs length 2 idiv 1 add {.625} repeat] readonly def |
| 54 | +/symbol.fimbbbs [//symbol.fimbsbs length 2 idiv 1 add {0 } repeat] readonly def |
58 | 55 |
|
59 | | - /symbol //loadctx exec |
| 56 | +/symbol.fimcsbs [2.25 2.25 2.25 6.75 2.25 6.75 2.25 6.75 2.25 2.25 2.25] readonly def |
| 57 | +/symbol.fimcbhs [//symbol.fimcsbs length 2 idiv 1 add {.625} repeat] readonly def |
| 58 | +/symbol.fimcbbs [//symbol.fimcsbs length 2 idiv 1 add {0 } repeat] readonly def |
60 | 59 |
|
61 | | -{ % context |
| 60 | +/symbol.fimdsbs [2.25 2.25 2.25 2.25 2.25 6.75 2.25 6.75 2.25 2.25 2.25 2.25 2.25] readonly def |
| 61 | +/symbol.fimdbhs [//symbol.fimdsbs length 2 idiv 1 add {.625} repeat] readonly def |
| 62 | +/symbol.fimdbbs [//symbol.fimdsbs length 2 idiv 1 add {0 } repeat] readonly def |
62 | 63 |
|
63 | | - /fimasbs [2.25 2.25 2.25 11.25 2.25 11.25 2.25 2.25 2.25] def |
64 | | - /fimabhs [fimasbs length 2 idiv 1 add {.625} repeat] def |
65 | | - /fimabbs [fimasbs length 2 idiv 1 add {0 } repeat] def |
| 64 | +/symbol.fimesbs [2.25 6.75 2.25 15.75 2.25 6.75 2.25] readonly def |
| 65 | +/symbol.fimebhs [//symbol.fimesbs length 2 idiv 1 add {.625} repeat] readonly def |
| 66 | +/symbol.fimebbs [//symbol.fimesbs length 2 idiv 1 add {0 } repeat] readonly def |
66 | 67 |
|
67 | | - /fimbsbs [2.25 6.75 2.25 2.25 2.25 6.25 2.25 2.25 2.25 6.75 2.25] def |
68 | | - /fimbbhs [fimbsbs length 2 idiv 1 add {.625} repeat] def |
69 | | - /fimbbbs [fimbsbs length 2 idiv 1 add {0 } repeat] def |
| 68 | +/symbol.zebrasbs [100 { 1 1 } repeat 1] readonly def |
| 69 | +/symbol.zebrabhs [//symbol.zebrasbs length 2 idiv 1 add {1} repeat] readonly def |
| 70 | +/symbol.zebrabbs [//symbol.zebrasbs length 2 idiv 1 add {0} repeat] readonly def |
70 | 71 |
|
71 | | - /fimcsbs [2.25 2.25 2.25 6.75 2.25 6.75 2.25 6.75 2.25 2.25 2.25] def |
72 | | - /fimcbhs [fimcsbs length 2 idiv 1 add {.625} repeat] def |
73 | | - /fimcbbs [fimcsbs length 2 idiv 1 add {0 } repeat] def |
| 72 | +/symbol.checksize 199 def |
| 73 | +/symbol.checkpixs [ //symbol.checksize dup mul 2 idiv {1 0} repeat 1 ] readonly def |
74 | 74 |
|
75 | | - /fimdsbs [2.25 2.25 2.25 2.25 2.25 6.75 2.25 6.75 2.25 2.25 2.25 2.25 2.25] def |
76 | | - /fimdbhs [fimdsbs length 2 idiv 1 add {.625} repeat] def |
77 | | - /fimdbbs [fimdsbs length 2 idiv 1 add {0 } repeat] def |
| 75 | +/symbol.symbols << |
| 76 | + /fima { << /ren /renlinear /sbs //symbol.fimasbs /bhs //symbol.fimabhs /bbs //symbol.fimabbs >> } bind |
| 77 | + /fimb { << /ren /renlinear /sbs //symbol.fimbsbs /bhs //symbol.fimbbhs /bbs //symbol.fimbbbs >> } bind |
| 78 | + /fimc { << /ren /renlinear /sbs //symbol.fimcsbs /bhs //symbol.fimcbhs /bbs //symbol.fimcbbs >> } bind |
| 79 | + /fimd { << /ren /renlinear /sbs //symbol.fimdsbs /bhs //symbol.fimdbhs /bbs //symbol.fimdbbs >> } bind |
| 80 | + /fime { << /ren /renlinear /sbs //symbol.fimesbs /bhs //symbol.fimebhs /bbs //symbol.fimebbs >> } bind |
| 81 | + /zebra { << /ren /renlinear /sbs //symbol.zebrasbs /bhs //symbol.zebrabhs /bbs //symbol.zebrabbs >> } bind |
| 82 | + /check { << /ren /renmatrix /pixs //symbol.checkpixs /pixx //symbol.checksize /pixy //symbol.checksize /height //symbol.checksize 72 div /width //symbol.checksize 72 div >> } bind |
| 83 | +>> readonly def |
78 | 84 |
|
79 | | - /fimesbs [2.25 6.75 2.25 15.75 2.25 6.75 2.25] def |
80 | | - /fimebhs [fimesbs length 2 idiv 1 add {.625} repeat] def |
81 | | - /fimebbs [fimesbs length 2 idiv 1 add {0 } repeat] def |
| 85 | +/symbol.renmap << |
| 86 | + /renlinear //renlinear |
| 87 | + /renmatrix //renmatrix |
| 88 | +>> readonly def |
82 | 89 |
|
83 | | - /zebrasbs [100 { 1 1 } repeat 1] def |
84 | | - /zebrabhs [zebrasbs length 2 idiv 1 add {1} repeat] def |
85 | | - /zebrabbs [zebrasbs length 2 idiv 1 add {0} repeat] def |
| 90 | +/symbol { |
86 | 91 |
|
87 | | - /checksize 199 def |
88 | | - /checkpixs [ checksize dup mul 2 idiv {1 0} repeat 1 ] def |
| 92 | + 20 dict begin |
89 | 93 |
|
90 | | - /renmap << |
91 | | - /renlinear //renlinear |
92 | | - /renmatrix //renmatrix |
93 | | - >> def |
| 94 | + /ctx null def |
94 | 95 |
|
95 | | -} ctxdef |
| 96 | + /dontdraw false def |
96 | 97 |
|
97 | | - /symbols << |
98 | | - /fima { << /ren /renlinear /sbs fimasbs /bhs fimabhs /bbs fimabbs >> } |
99 | | - /fimb { << /ren /renlinear /sbs fimbsbs /bhs fimbbhs /bbs fimbbbs >> } |
100 | | - /fimc { << /ren /renlinear /sbs fimcsbs /bhs fimcbhs /bbs fimcbbs >> } |
101 | | - /fimd { << /ren /renlinear /sbs fimdsbs /bhs fimdbhs /bbs fimdbbs >> } |
102 | | - /fime { << /ren /renlinear /sbs fimesbs /bhs fimebhs /bbs fimebbs >> } |
103 | | - /zebra { << /ren /renlinear /sbs zebrasbs /bhs zebrabhs /bbs zebrabbs >> } |
104 | | - /check { << /ren /renmatrix /pixs checkpixs /pixx checksize /pixy checksize /height checksize 72 div /width checksize 72 div >> } |
105 | | - >> def |
| 98 | + //processoptions exec /options exch def |
| 99 | + /barcode exch def |
106 | 100 |
|
| 101 | + % |
107 | 102 | % Valiate input |
108 | | - symbols barcode known not { |
| 103 | + % |
| 104 | + //symbol.symbols barcode known not { |
109 | 105 | /bwipp.symbolUnknownSymbol (Unknown symbol name provided) //raiseerror exec |
110 | 106 | } if |
111 | 107 |
|
112 | | - symbols barcode get exec |
| 108 | + //symbol.symbols barcode get exec |
113 | 109 | dup /opt options put |
114 | 110 |
|
115 | | - dontdraw not { dup /ren get renmap exch get exec } if |
116 | | - |
117 | | - //unloadctx exec |
| 111 | + dontdraw not { dup /ren get //symbol.renmap exch get exec } if |
118 | 112 |
|
119 | 113 | end |
120 | 114 |
|
|
0 commit comments