Skip to content

Commit a869d5b

Browse files
committed
databar: Add 1X LHS guard space to linear sbs and 5X RHS space for Limited
Includes reverting 180401b
1 parent 933d7ad commit a869d5b

12 files changed

Lines changed: 147 additions & 140 deletions

src/databarexpanded.ps.src

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -842,19 +842,14 @@ begin
842842

843843
format (expandedstacked) ne { % Linear
844844

845-
%
846-
% Remove leading space
847-
%
848-
/sbs rows 0 get dup length 1 sub 1 exch getinterval def
849-
850845
/sbs [
851-
1
846+
0 1 1 % 0-width placeholder + left guard (space + bar)
852847
0 1 datalen 1 sub {
853848
/i exch def
854849
dxw i get aload pop
855850
i 2 mod 0 eq {fxw i 2 idiv get aload pop} if
856851
} for
857-
1 1
852+
1 1 % right guard (bar + space)
858853
] def
859854

860855
/height /resolve_height //render exec dup -1 eq { pop 34.0 72 div } if def

src/databarexpandedcomposite.ps.src

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -152,14 +152,17 @@ begin
152152
} for
153153
} def
154154
mark
155-
0 linsbs {1 index 1 eq {{0}} {{1}} ifelse repeat} forall
156-
counttomark 1 sub array astore /bot exch def pop pop
155+
0 1 linsbs length 1 sub {
156+
/i exch def
157+
linsbs i get cvi { i 2 mod 0 eq {1} {0} ifelse } repeat % Emit sbs[i] pixels of bar(1)/space(0) per index parity
158+
} for
159+
counttomark array astore /bot exch def pop
157160
/sep [ bot {1 exch sub} forall ] def
158-
sep 0 [0 0 0] putinterval
161+
sep 0 [0 0 0 0] putinterval
159162
sep sep length 4 sub [0 0 0 0] putinterval
160-
[ % Finder pattern module positions
161-
18 98 bot length 13 sub {} for
162-
69 98 bot length 13 sub {} for
163+
[ % Finder pattern module positions (shifted +1 from 18, 69 for the 96/100-module layout that now includes the left guard space)
164+
19 98 bot length 13 sub {} for
165+
70 98 bot length 13 sub {} for
163166
] {sepfinder} forall
164167

165168
%
@@ -173,10 +176,12 @@ begin
173176
/ccrowmult compsym /rowmult get def
174177
/ccpixx compsym /pixx get def
175178

176-
/linpixs [ 0 % Begin with left guard space
177-
linsbs { cvi 1 index 0 eq {{1}} {{0}} ifelse repeat } forall % Alternates i 1/0's
179+
/linpixs [
180+
0 1 linsbs length 1 sub {
181+
/i exch def
182+
linsbs i get cvi { i 2 mod 0 eq {1} {0} ifelse } repeat % Emit sbs[i] pixels of bar(1)/space(0) per index parity
183+
} for
178184
] def
179-
/sep [ 0 sep aload pop ] def % Offset by 1
180185

181186
/linheight linheight cvi def
182187
/ccrows ccrowmult length def

src/databarlimited.ps.src

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -342,11 +342,11 @@ begin
342342
} for
343343

344344
/sbs [
345-
1
345+
0 1 1 % 0-width placeholder + left guard (space + bar)
346346
d1w aload pop
347347
checkwidths aload pop
348348
d2w aload pop
349-
1 1 5
349+
1 1 5 0 % right guard (space + bar + 5-module space) + 0-width placeholder so renlinear processes the trailing space
350350
] def
351351

352352
/height /resolve_height //render exec dup -1 eq { pop 10.0 72 div } if def

src/databarlimitedcomposite.ps.src

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -137,11 +137,15 @@ begin
137137
/linsym exch def
138138

139139
%
140-
% Plot the separator
140+
% Plot the separator and linear bitmap (index-based expansion of sbs)
141141
%
142-
mark
143-
1 linsbs {1 index 0 eq {{1}} {{0}} ifelse repeat} forall
144-
counttomark 1 sub array astore /sep exch def pop pop
142+
/linpixs [
143+
0 1 linsbs length 1 sub {
144+
/i exch def
145+
linsbs i get cvi { i 2 mod 0 eq {1} {0} ifelse } repeat % Emit sbs[i] pixels of bar(1)/space(0) per index parity
146+
} for
147+
] def
148+
/sep [ linpixs {1 exch sub} forall ] def
145149
sep 0 //databarlimitedcomposite.sepleft putinterval
146150
sep sep length 9 sub //databarlimitedcomposite.sepright putinterval % 4 + 5 right guard spaces
147151

@@ -156,33 +160,27 @@ begin
156160
/ccrowmult compsym /rowmult get def
157161
/ccpixx compsym /pixx get def
158162

159-
/linpixs [ 0 % Begin with left guard space
160-
linsbs 0 linsbs length 1 add 2 idiv 2 mul 1 sub getinterval % Discard trailing space (even-length sbs)
161-
{ cvi 1 index 0 eq {{1}} {{0}} ifelse repeat } forall
162-
] def
163-
/sep [ 0 sep 0 linpixs length 1 sub getinterval aload pop ] def % Offset by 1; trim to match
164-
165163
/linheight linheight cvi def
166164
/ccrows ccrowmult length def
167-
% ccpixx is 72 for CC-A and 82 for CC-B; linpixs length is 74
165+
% ccpixx is 72 for CC-A and 82 for CC-B; linpixs length is 79
168166
ccpixx 72 eq { % 3-col CC-A
169167
/pixs [
170-
0 ccpixx ccpixs length 1 sub { % Left pad composite with 1 space & right pad with 1 space
168+
0 ccpixx ccpixs length 1 sub { % Left pad CC with 1 space; right pad with 1 space + 5 right guard spaces
171169
/i exch def
172-
0 ccpixs i ccpixx getinterval aload pop 0
170+
0 ccpixs i ccpixx getinterval aload pop 0 0 0 0 0 0
173171
} for
174172
sep aload pop linpixs aload pop
175173
] def
176-
/pixx linpixs length def % 74
174+
/pixx linpixs length def % 79
177175
} { % 3-col CC-B
178176
/pixs [
179-
0 ccpixx ccpixs length 1 sub { % Right pad composite with 1 space
177+
0 ccpixx ccpixs length 1 sub { % Right pad CC with 1 space + 5 right guard spaces
180178
/i exch def
181-
ccpixs i ccpixx getinterval aload pop 0
179+
ccpixs i ccpixx getinterval aload pop 0 0 0 0 0 0
182180
} for
183-
0 0 0 0 0 0 0 0 0 sep aload pop 0 0 0 0 0 0 0 0 0 linpixs aload pop % Left pad with 9 spaces
181+
0 0 0 0 0 0 0 0 0 sep aload pop 0 0 0 0 0 0 0 0 0 linpixs aload pop % Left pad sep/linpixs with 9 spaces
184182
] def
185-
/pixx ccpixx 1 add def % 83
183+
/pixx ccpixx 6 add def % 88
186184
} ifelse
187185
/rowmult [ ccrowmult aload pop 1 linheight ] def
188186

src/databaromni.ps.src

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,14 +370,14 @@ begin
370370
format (omni) eq format (truncated) eq or { % linear
371371

372372
/sbs [
373-
1
373+
0 1 1 % 0-width placeholder + left guard (space + bar)
374374
d1w aload pop
375375
checklt aload pop
376376
d2w aload pop
377377
d4w aload pop
378378
checkrt aload pop
379379
d3w aload pop
380-
1 1
380+
1 1 % right guard (space + bar)
381381
] def
382382

383383
/height /resolve_height //render exec dup -1 eq { pop 33.0 72 div } if def

src/databaromnicomposite.ps.src

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -161,12 +161,15 @@ begin
161161
} if
162162
} def
163163
mark
164-
0 linsbs {1 index 1 eq {{0}} {{1}} ifelse repeat} forall
165-
counttomark 1 sub array astore /bot exch def pop pop
164+
0 1 linsbs length 1 sub {
165+
/i exch def
166+
linsbs i get cvi { i 2 mod 0 eq {1} {0} ifelse } repeat % Emit sbs[i] pixels of bar(1)/space(0) per index parity
167+
} for
168+
counttomark array astore /bot exch def pop
166169
/sep [ bot {1 exch sub} forall ] def
167-
sep 0 [0 0 0] putinterval
170+
sep 0 //databaromnicomposite.seppad putinterval
168171
sep sep length 4 sub //databaromnicomposite.seppad putinterval
169-
18 sepfinder 64 sepfinder
172+
19 sepfinder 65 sepfinder % Finder positions shifted for the 96-module linear layout (was 18 and 64 for the former 95-module layout)
170173

171174
%
172175
% Generate metrics for the 2D part
@@ -179,10 +182,12 @@ begin
179182
/ccrowmult compsym /rowmult get def
180183
/ccpixx compsym /pixx get def
181184

182-
/linpixs [ 0 % Begin with left guard space
183-
linsbs { cvi 1 index 0 eq {{1}} {{0}} ifelse repeat } forall % Alternates i 1/0's
185+
/linpixs [
186+
0 1 linsbs length 1 sub {
187+
/i exch def
188+
linsbs i get cvi { i 2 mod 0 eq {1} {0} ifelse } repeat % Emit sbs[i] pixels of bar(1)/space(0) per index parity
189+
} for
184190
] def
185-
/sep [ 0 sep aload pop ] def % Offset by 1
186191

187192
/linheight linheight cvi def
188193
/ccrows ccrowmult length def

src/databartruncatedcomposite.ps.src

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,9 @@ dup /gs1process dup /uk.co.terryburton.bwipp findresource put
5151
dup /renmatrix dup /uk.co.terryburton.bwipp findresource put
5252
begin
5353

54-
/databaromnicomposite.seppadleft [ 0 0 0 ] readonly def
55-
/databaromnicomposite.seppadright [ 0 0 0 0 ] readonly def
56-
/databaromnicomposite.findersep [ 0 0 0 0 0 0 0 0 0 0 1 0 0 ] readonly def
57-
/databaromnicomposite.f3pat [ 1 1 1 1 1 1 1 1 1 0 1 1 1 ] readonly def
54+
/databartruncatedcomposite.seppad [ 0 0 0 0 ] readonly def
55+
/databartruncatedcomposite.findersep [ 0 0 0 0 0 0 0 0 0 0 1 0 0 ] readonly def
56+
/databartruncatedcomposite.f3pat [ 1 1 1 1 1 1 1 1 1 0 1 1 1 ] readonly def
5857

5958
/databartruncatedcomposite {
6059

@@ -156,18 +155,21 @@ begin
156155
} ifelse
157156
sep exch i exch put
158157
} for
159-
true 0 1 12 {dup bot exch fp add get exch //databaromnicomposite.f3pat exch get eq and} for {
158+
true 0 1 12 {dup bot exch fp add get exch //databartruncatedcomposite.f3pat exch get eq and} for {
160159
% Right shifted module for value 3 finder
161-
sep fp //databaromnicomposite.findersep putinterval
160+
sep fp //databartruncatedcomposite.findersep putinterval
162161
} if
163162
} def
164163
mark
165-
0 linsbs {1 index 1 eq {{0}} {{1}} ifelse repeat} forall
166-
counttomark 1 sub array astore /bot exch def pop pop
164+
0 1 linsbs length 1 sub {
165+
/i exch def
166+
linsbs i get cvi { i 2 mod 0 eq {1} {0} ifelse } repeat % Emit sbs[i] pixels of bar(1)/space(0) per index parity
167+
} for
168+
counttomark array astore /bot exch def pop
167169
/sep [ bot {1 exch sub} forall ] def
168-
sep 0 //databaromnicomposite.seppadleft putinterval
169-
sep sep length 4 sub //databaromnicomposite.seppadright putinterval
170-
18 sepfinder 64 sepfinder
170+
sep 0 //databartruncatedcomposite.seppad putinterval
171+
sep sep length 4 sub //databartruncatedcomposite.seppad putinterval
172+
19 sepfinder 65 sepfinder % Finder positions shifted for the 96-module linear layout (was 18 and 64 for the former 95-module layout)
171173

172174
%
173175
% Generate metrics for the 2D part
@@ -180,10 +182,12 @@ begin
180182
/ccrowmult compsym /rowmult get def
181183
/ccpixx compsym /pixx get def
182184

183-
/linpixs [ 0 % Begin with left guard space
184-
linsbs { cvi 1 index 0 eq {{1}} {{0}} ifelse repeat } forall % Alternates i 1/0's
185+
/linpixs [
186+
0 1 linsbs length 1 sub {
187+
/i exch def
188+
linsbs i get cvi { i 2 mod 0 eq {1} {0} ifelse } repeat % Emit sbs[i] pixels of bar(1)/space(0) per index parity
189+
} for
185190
] def
186-
/sep [ 0 sep aload pop ] def % Offset by 1
187191

188192
/linheight linheight cvi def
189193
/ccrows ccrowmult length def

tests/ps_tests/databarexpanded.ps.test

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,40 +28,40 @@
2828

2929

3030
((01)00012345678905(10)ABC123) % Encoding method "1" (24724:2011 7.2.5.4.1)
31-
[1 3 2 5 1 1 2 1 2 1 8 4 1 1 2 2 2 4 1 1 4 1 1 1 4 2 2 1 5 1 1 1 5 6 2 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 3 3 2 2 1 4 1 1 1 2 3 1 6 1 2 1 1 1 8 2 3 2 1 1 2 1 6 1 3 2 2 1 3 2 1 1 5 3 4 6 1 1 1 1]
31+
[0 1 1 3 2 5 1 1 2 1 2 1 8 4 1 1 2 2 2 4 1 1 4 1 1 1 4 2 2 1 5 1 1 1 5 6 2 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 3 3 2 2 1 4 1 1 1 2 3 1 6 1 2 1 1 1 8 2 3 2 1 1 2 1 6 1 3 2 2 1 3 2 1 1 5 3 4 6 1 1 1 1]
3232
eq_tmpl
3333
((01)90012345678908(3103)001750) % Encoding method "0100" (24724:2011 7.2.5.4.2 and Figure 11)
34-
[1 1 3 2 1 5 1 2 2 1 8 4 1 1 3 4 1 2 2 3 1 1 1 1 4 1 3 2 2 3 1 1 4 6 3 2 1 1 3 3 3 1 3 1 4 1 1 1 4 3 2 3 6 4 1 1 1 1 2 4 1 2 5 1 1 1]
34+
[0 1 1 1 3 2 1 5 1 2 2 1 8 4 1 1 3 4 1 2 2 3 1 1 1 1 4 1 3 2 2 3 1 1 4 6 3 2 1 1 3 3 3 1 3 1 4 1 1 1 4 3 2 3 6 4 1 1 1 1 2 4 1 2 5 1 1 1]
3535
eq_tmpl
3636
((01)90012345678908(3202)000156) % Encoding method "0101" (24724:2011 7.2.5.4.3)
37-
[1 1 1 2 1 3 4 4 1 1 8 4 1 1 1 2 3 3 1 4 2 1 1 1 4 1 3 2 2 3 1 1 4 6 3 2 1 1 3 3 3 1 3 1 4 1 1 1 4 3 2 3 6 4 1 1 2 4 1 5 1 1 1 2 1 1]
37+
[0 1 1 1 1 2 1 3 4 4 1 1 8 4 1 1 1 2 3 3 1 4 2 1 1 1 4 1 3 2 2 3 1 1 4 6 3 2 1 1 3 3 3 1 3 1 4 1 1 1 4 3 2 3 6 4 1 1 2 4 1 5 1 1 1 2 1 1]
3838
eq_tmpl
3939
((01)90012345678908(3103)012233(15)991231) % Encoding method "0111100" (24724:2011 7.2.5.4.4)
40-
[1 2 2 5 1 2 3 1 1 1 8 4 1 1 1 1 3 2 1 5 2 2 1 1 4 2 2 1 5 1 1 1 6 4 3 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 2 4 2 1 1 1 2 4 3 2 2 2 2 3 1 2 1 1 8 2 3 3 2 1 4 1 1 4 1 1 1]
40+
[0 1 1 2 2 5 1 2 3 1 1 1 8 4 1 1 1 1 3 2 1 5 2 2 1 1 4 2 2 1 5 1 1 1 6 4 3 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 2 4 2 1 1 1 2 4 3 2 2 2 2 3 1 2 1 1 8 2 3 3 2 1 4 1 1 4 1 1 1]
4141
eq_tmpl
4242
((01)98898765432106(3202)012345(15)991231) % Encoding method "0111101" (24724:2011 Figure 10)
43-
[1 2 1 4 2 3 2 1 2 1 8 4 1 1 3 4 2 2 1 1 1 3 2 1 1 6 2 3 1 1 1 1 6 4 3 1 1 2 3 6 1 2 1 1 1 2 5 1 3 2 2 3 6 4 1 1 3 1 2 5 1 2 1 2 1 3 4 2 1 1 2 3 1 1 8 2 3 3 2 1 4 1 1 4 1 1 1]
43+
[0 1 1 2 1 4 2 3 2 1 2 1 8 4 1 1 3 4 2 2 1 1 1 3 2 1 1 6 2 3 1 1 1 1 6 4 3 1 1 2 3 6 1 2 1 1 1 2 5 1 3 2 2 3 6 4 1 1 3 1 2 5 1 2 1 2 1 3 4 2 1 1 2 3 1 1 8 2 3 3 2 1 4 1 1 4 1 1 1]
4444
eq_tmpl
4545
((01)90012345678908(3922)795) % Encoding method "01100" (24724:2011 7.2.5.4.5)
46-
[1 1 2 5 1 3 1 1 3 1 8 4 1 1 1 2 3 5 1 1 2 2 1 1 4 2 2 1 5 1 1 1 6 4 3 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 1 2 4 1 3 1 1 4 2 3 2 1 3 2 1 3 1 1 8 2 3 1 1]
46+
[0 1 1 1 2 5 1 3 1 1 3 1 8 4 1 1 1 2 3 5 1 1 2 2 1 1 4 2 2 1 5 1 1 1 6 4 3 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 1 2 4 1 3 1 1 4 2 3 2 1 3 2 1 3 1 1 8 2 3 1 1]
4747
eq_tmpl_dontlint
4848
((01)90012345678908(3922)795(20)01) % Encoding method "01100" with following AI so FNC1 required after price
49-
[1 3 2 1 2 4 2 2 1 1 8 4 1 1 4 3 1 4 1 1 1 2 1 1 4 2 2 1 5 1 1 1 6 4 3 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 1 2 4 1 3 1 1 4 2 3 3 3 1 1 2 2 1 1 8 2 3 1 1 2 5 3 3 1 1 1 1]
49+
[0 1 1 3 2 1 2 4 2 2 1 1 8 4 1 1 4 3 1 4 1 1 1 2 1 1 4 2 2 1 5 1 1 1 6 4 3 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 1 2 4 1 3 1 1 4 2 3 3 3 1 1 2 2 1 1 8 2 3 1 1 2 5 3 3 1 1 1 1]
5050
eq_tmpl_dontlint
5151

5252
% Currency Code "040" (Australian Shilling) was withdrawn, so these fail GS1 linting
5353
%((01)90012345678908(3932)0401234) % Encoding method "01101" (24724:2011 7.2.5.4.6)
54-
% [1 3 4 1 1 1 1 5 1 1 8 4 1 1 3 1 1 5 2 2 1 2 1 1 4 2 2 1 5 1 1 1 6 4 3 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 3 3 2 2 2 1 2 2 1 2 5 3 1 1 3 1 1 1 8 2 3 3 2 1 4 2 1 1 3 1 1]
54+
% [0 1 1 3 4 1 1 1 1 5 1 1 8 4 1 1 3 1 1 5 2 2 1 2 1 1 4 2 2 1 5 1 1 1 6 4 3 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 3 3 2 2 2 1 2 2 1 2 5 3 1 1 3 1 1 1 8 2 3 3 2 1 4 2 1 1 3 1 1]
5555
% eq_tmpl
5656
%((01)90012345678908(3932)0401234(20)01) % Encoding method "01101" with following AI so FNC1 required after price
57-
% [1 3 1 3 1 3 2 1 3 1 8 4 1 1 2 4 1 1 1 3 3 2 1 1 4 2 2 1 5 1 1 1 5 6 2 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 3 3 2 2 2 1 2 2 1 2 5 3 1 1 3 1 1 1 8 2 3 3 1 2 2 2 4 2 1 2 3 1 4 2 1 3 1 3 4 6 1 1 1 1]
57+
% [0 1 1 3 1 3 1 3 2 1 3 1 8 4 1 1 2 4 1 1 1 3 3 2 1 1 4 2 2 1 5 1 1 1 5 6 2 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 3 3 2 2 2 1 2 2 1 2 5 3 1 1 3 1 1 1 8 2 3 3 1 2 2 2 4 2 1 2 3 1 4 2 1 3 1 3 4 6 1 1 1 1]
5858
% eq_tmpl
5959

6060
((10)12A) % Encoding method "00" (24724:2011 Figure F.3)
61-
[1 1 1 5 2 1 1 5 1 1 8 4 1 1 1 3 1 7 1 1 2 1 1 1 5 2 1 2 3 2 1 1 4 8 1 2 3 1 7 1 1 1 1 1 1]
61+
[0 1 1 1 1 5 2 1 1 5 1 1 8 4 1 1 1 3 1 7 1 1 2 1 1 1 5 2 1 2 3 2 1 1 4 8 1 2 3 1 7 1 1 1 1 1 1]
6262
eq_tmpl_dontlint
6363
((01)90012345678908(3103)012233(15)000000) % Encoding method "0111100" prospect but invalid date so encoding method "1"
64-
[1 1 4 2 2 2 1 3 2 1 8 4 1 1 1 2 1 3 5 2 2 1 1 1 4 2 2 1 5 1 1 1 5 6 2 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 1 2 1 1 2 3 3 4 1 5 1 2 2 3 2 1 1 1 8 2 3 2 2 1 5 1 4 1 1 1 4 1 3 4 1 2 1 3 2 8 1 1 1 1 2 4 1 6 1 1 1 1 1 1 4 1 6 2 1 1 9 2 2 1 1]
64+
[0 1 1 1 4 2 2 2 1 3 2 1 8 4 1 1 1 2 1 3 5 2 2 1 1 1 4 2 2 1 5 1 1 1 5 6 2 3 1 1 2 4 2 1 3 3 4 1 2 1 1 1 4 3 6 4 1 1 1 2 1 1 2 3 3 4 1 5 1 2 2 3 2 1 1 1 8 2 3 2 2 1 5 1 4 1 1 1 4 1 3 4 1 2 1 3 2 8 1 1 1 1 2 4 1 6 1 1 1 1 1 1 4 1 6 2 1 1 9 2 2 1 1]
6565
eq_tmpl_dontlint
6666

6767

@@ -421,7 +421,7 @@
421421
0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 % GPF: (21)12345 numeric
422422
] eq_tmpl_bits
423423

424-
((01)09521234543213(21)12345) [1 2 1 3 2 1 3 4 1 1 8 4 1 1 3 2 1 4 1 1 2 3 2 1 1 4 1 5 2 1 1 1 6 4 3 4 1 1 1 1 2 3 4 2 4 3 1 1 3 2 1 3 6 4 1 1 1 4 1 2 4 1 1 3 1 1 1 1 2 2 4 5 1 1 8 2 3 3 1 2 3 1 2 3 2 1 1] eq_tmpl
424+
((01)09521234543213(21)12345) [0 1 1 2 1 3 2 1 3 4 1 1 8 4 1 1 3 2 1 4 1 1 2 3 2 1 1 4 1 5 2 1 1 1 6 4 3 4 1 1 1 1 2 3 4 2 4 3 1 1 3 2 1 3 6 4 1 1 1 4 1 2 4 1 1 3 1 1 1 1 2 2 4 5 1 1 8 2 3 3 1 2 3 1 2 3 2 1 1] eq_tmpl
425425

426426
%
427427
% GPF encoding: alphanumeric with FNC1 then numeric
@@ -434,7 +434,7 @@
434434
0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 0 % GPF: (21)12345 numeric
435435
] eq_tmpl_bits
436436

437-
((01)09521234543213(10)AB(21)12345) [1 4 1 2 1 1 1 3 4 1 8 4 1 1 3 2 1 4 1 1 2 3 2 1 1 4 1 5 2 1 1 1 5 6 2 4 1 1 1 1 2 3 4 2 4 3 1 1 3 2 1 3 6 4 1 1 3 3 2 2 1 4 1 1 1 1 3 2 6 1 2 1 1 1 8 2 3 2 1 4 1 4 1 1 3 4 3 3 2 2 1 1 1 3 4 6 1 1 3 1 3 3 2 1 3 1 1 1] eq_tmpl
437+
((01)09521234543213(10)AB(21)12345) [0 1 1 4 1 2 1 1 1 3 4 1 8 4 1 1 3 2 1 4 1 1 2 3 2 1 1 4 1 5 2 1 1 1 5 6 2 4 1 1 1 1 2 3 4 2 4 3 1 1 3 2 1 3 6 4 1 1 3 3 2 2 1 4 1 1 1 1 3 2 6 1 2 1 1 1 8 2 3 2 1 4 1 4 1 1 3 4 3 3 2 2 1 1 1 3 4 6 1 1 3 1 3 3 2 1 3 1 1 1] eq_tmpl
438438

439439
%
440440
% GPF encoding: ISO 646 mode (lowercase)
@@ -446,7 +446,7 @@
446446
0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 % GPF: (10) a b c ISO 646
447447
] eq_tmpl_bits
448448

449-
((01)09521234543213(10)abc) [1 3 3 4 1 2 2 1 1 1 8 4 1 1 3 4 3 1 2 2 1 1 2 1 1 4 1 5 2 1 1 1 5 6 2 4 1 1 1 1 2 3 4 2 4 3 1 1 3 2 1 3 6 4 1 1 4 3 1 2 1 4 1 1 3 3 5 1 1 2 1 1 1 1 8 2 3 1 3 5 1 1 3 2 1 3 1 4 1 4 1 1 2 3 4 6 1 1 1 1] eq_tmpl_dontlint
449+
((01)09521234543213(10)abc) [0 1 1 3 3 4 1 2 2 1 1 1 8 4 1 1 3 4 3 1 2 2 1 1 2 1 1 4 1 5 2 1 1 1 5 6 2 4 1 1 1 1 2 3 4 2 4 3 1 1 3 2 1 3 6 4 1 1 4 3 1 2 1 4 1 1 3 3 5 1 1 2 1 1 1 1 8 2 3 1 3 5 1 1 3 2 1 3 1 4 1 4 1 1 2 3 4 6 1 1 1 1] eq_tmpl_dontlint
450450

451451
%
452452
% Linkage flag: bit 0 = 1 for composite linkage
@@ -461,7 +461,7 @@
461461

462462
{
463463
((01)09521234543213) (dontdraw linkage) databarexpanded /sbs get
464-
} [1 3 1 2 1 1 2 6 1 1 8 4 1 1 1 2 3 1 6 1 1 2 2 1 1 4 1 5 2 1 1 1 4 6 3 4 1 1 1 1 2 3 4 2 4 3 1 1 3 2 1 3 6 4 1 1 1 1] isEqual
464+
} [0 1 1 3 1 2 1 1 2 6 1 1 8 4 1 1 1 2 3 1 6 1 1 2 2 1 1 4 1 5 2 1 1 1 4 6 3 4 1 1 1 1 2 3 4 2 4 3 1 1 3 2 1 3 6 4 1 1 1 1] isEqual
465465

466466
%
467467
% Method "0100": (01)+(3103), weight = 0

tests/ps_tests/databarlimited.ps.test

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323

2424

2525
((01)15012345678907) % ISO/IEC 24724:2011 Figure 7 GS1 DataBar Limited, same
26-
[1 3 2 2 2 3 2 1 2 1 1 1 1 2 3 1 1 2 1 1 1 1 2 1 1 2 2 1 1 2 1 2 1 1 2 3 2 1 3 2 2 2 2 1 1 5]
26+
[0 1 1 3 2 2 2 3 2 1 2 1 1 1 1 2 3 1 1 2 1 1 1 1 2 1 1 2 2 1 1 2 1 2 1 1 2 3 2 1 3 2 2 2 2 1 1 5 0]
2727
eq_tmpl
2828

2929
((01)0009876543210) % ISO/IEC 24724:2011 Figure F.2 GS1 DataBar Limited, same
30-
[1 1 1 1 1 2 1 2 1 2 2 4 2 5 1 1 1 1 2 1 1 2 1 1 2 2 1 1 1 3 1 3 1 1 1 3 1 5 1 2 1 2 1 1 1 5]
30+
[0 1 1 1 1 1 1 2 1 2 1 2 2 4 2 5 1 1 1 1 2 1 1 2 1 1 2 2 1 1 1 3 1 3 1 1 1 3 1 5 1 2 1 2 1 1 1 5 0]
3131
eq_tmpl
3232

3333

0 commit comments

Comments
 (0)