Blame view

site/jpgraph/docs/chunkhtml/ch33.html 28.8 KB
d72ac078   Guillaume   Ajout graphe V1.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
  <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 33. USPS Confirmation Barcodes</title><link rel="stylesheet" type="text/css" href="manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.0"><link rel="home" href="index.html" title="JpGraph Manual"><link rel="up" href="pt08.html" title="Part VIII. Case studies"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 33. USPS Confirmation Barcodes</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center">Part VIII. Case studies</th><td width="20%" align="right"> </td></tr></table><hr></div><div class="chapter" title="Chapter 33. USPS Confirmation Barcodes"><div class="titlepage"><div><div><h2 class="title"><a name="id2620047"></a>Chapter 33. USPS Confirmation Barcodes</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="ch33.html#id2620134">33.1. Creating the confirmation codes</a></span></dt></dl></div>
          
          <p>US Postal Service (USPS) uses EAN-128 barcodes to tag confirmation codes for the
              sender of parcels and letters in the case the sender is a registered business entity.
              The confirmation barcode gives feedback to the sender on the date, ZIP Code and the time
              the article was delivered. </p>
          <div class="figure"><a name="id2620090"></a><p class="title"><b>Figure 33.1. usps_exhibit44.png</b></p><div class="figure-contents">
              
              <div class="mediaobject"><img src="images/usps_exhibit44.png" alt="usps_exhibit44.png"></div>
          </div></div><br class="figure-break">
          <p>The full standard describing this is available in "<code class="uri"><a class="uri" href="http://www.usps.com/cpim/ftp/pubs/pub91/welcome.htm" target="_top">Confirmation
                  Services Technical Guide</a></code>" </p>
          <p>In order to create labels adhering to this strict standard it is possible to use
              JpGraph as a basic building block in order to create the barcode part (which uses
              UCC/EAN128 as mandatory coding from 2004 and onwards). The standard describes two basic
              forms of labels :</p>
          <p>
              </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
                      <p>Inclusion of postal service routing information (destination ZIP code)
                      </p>
                  </li><li class="listitem">
                      <p>Exclusion of the destination ZIP code. This will then only include the Dun
                          &amp; Bradstreet Number (DUNS). The DUNS uniquely identifies businesses at
                          specific geographical locations. For more information regarding this and how
                          to obtain such a number please refer to USPS technical documentation.
                      </p>
                  </li></ol></div><p>
          </p>
          <div class="sect1" title="Creating the confirmation codes"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2620134"></a>Creating the confirmation codes</h2></div></div></div>
              
              <p>In order to create the final Package Identification Code (PIC) the following three
                  steps must be taken </p>
              <p>
                  </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
                          <p>Determine the basic element of the code. This consists of identifying
                              the Zip code (of the addressee), USPS service type, the DUNS and
                              Sequence number of parcel (as determined by the business). These number
                              are input and the process of how to get those number is not described
                              further in this short note. It is assumed that a potential client will
                              now how these numbers are obtained. </p>
                      </li><li class="listitem">
                          <p>Determine what type of confirmation code should be used (with or
                              without Zip code) </p>
                      </li><li class="listitem">
                          <p>Calculate the additional checkdigit for the code and append that code
                              to the digit sequence. </p>
                      </li></ol></div><p>
              </p>
              <p>The final code that one arrives at in the final stage is then the barcode that
                  should be created. However creating this code requires knowledge of the EAN-128
                  barcode format and the rules for creating barcodes that follow the highly
                  standardized format for a EAN-128 barcode. </p>
              <p>EAN-128 barcodes are the same as CODE-128 barcodes from a technical barcode point
                  of view but the data to be encoded must follow a rigorous standard. The JpGraph
                  library has built in validation to ensure that any data that is encoded using the
                  EAN-128 symbology follows this standard. </p>
              <p>This standard requires that special control character is inserted at specific
                  points in the data stream. In the discussion below we will simply state what those
                  control characters are and not discuss the general format of the EAN-128 barcodes in
                  too much details. </p>
              <p>In order to do this we will create a utility class with methods that does the
                  following three things </p>
              <p>
                  </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
                          <p>Create the additional USPS Modulo-10 check digit. </p>
                      </li><li class="listitem">
                          <p>Create a confirmation code without the ZIP number </p>
                      </li><li class="listitem">
                          <p>Create a confirmation code with ZIP number </p>
                      </li></ol></div><p>
              </p>
              <p><span class="bold"><strong>The USPS_Confirmation Utility class</strong></span></p>
              <p>For both types of confirmation code USPS uses its own checkdigit (a variant of a
                  Modulo-10 checkdigit) at the end of the complete Package Identification Code (PIC),
                  (the exact process for calculating this number is also described in the technical
                  documentation released by USPS). The utility class will therefore consist of three
                  methods, one to calculate the checkdigit and one method each to create PIC with and
                  without ZIP code. The three methods are listed below </p>
              <p>
                  </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
                          <p><span class="bold"><strong><code class="code">function
                                  _USPS_chkd($aData)</code></strong></span></p>
                          <p>
                              </p><div class="hl-main"><table class="hl-table" width="100%"><tr><td class="hl-gutter" align="right" valign="top"><pre>1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  </pre></td><td class="hl-main" valign="top"><pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">
  </span><span class="hl-comment">//</span><span class="hl-comment"> Calculate the single digit check digit from sequence of numbers</span><span class="hl-comment"></span><span class="hl-code">
  </span><span class="hl-comment">//</span><span class="hl-comment"> in a string</span><span class="hl-comment"></span><span class="hl-code">
  </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">_USPS_chkd</span><span class="hl-brackets">(</span><span class="hl-var">$aData</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
      </span><span class="hl-var">$n</span><span class="hl-code"> = </span><span class="hl-identifier">strlen</span><span class="hl-brackets">(</span><span class="hl-var">$aData</span><span class="hl-brackets">)</span><span class="hl-code">;
      
      </span><span class="hl-comment">//</span><span class="hl-comment"> Add all numbers at position 0,2,4,.. from the end</span><span class="hl-comment"></span><span class="hl-code">
      </span><span class="hl-var">$et</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code"> ;
      </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$i</span><span class="hl-code">=</span><span class="hl-number">1</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt;= </span><span class="hl-var">$n</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">+=</span><span class="hl-number">2</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
      </span><span class="hl-var">$d</span><span class="hl-code"> = </span><span class="hl-identifier">intval</span><span class="hl-brackets">(</span><span class="hl-identifier">substr</span><span class="hl-brackets">(</span><span class="hl-var">$aData</span><span class="hl-code">,-</span><span class="hl-var">$i</span><span class="hl-code">,</span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
      </span><span class="hl-var">$et</span><span class="hl-code"> += </span><span class="hl-var">$d</span><span class="hl-code">;
      </span><span class="hl-brackets">}</span><span class="hl-code">
   
      </span><span class="hl-comment">//</span><span class="hl-comment"> Add all numbers at position 1,3,5,... from the end</span><span class="hl-comment"></span><span class="hl-code">
      </span><span class="hl-var">$ot</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code"> ;
      </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$i</span><span class="hl-code">=</span><span class="hl-number">2</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt;= </span><span class="hl-var">$n</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">+=</span><span class="hl-number">2</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
      </span><span class="hl-var">$d</span><span class="hl-code"> = </span><span class="hl-identifier">intval</span><span class="hl-brackets">(</span><span class="hl-identifier">substr</span><span class="hl-brackets">(</span><span class="hl-var">$aData</span><span class="hl-code">,-</span><span class="hl-var">$i</span><span class="hl-code">,</span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
      </span><span class="hl-var">$ot</span><span class="hl-code"> += </span><span class="hl-var">$d</span><span class="hl-code">;
      </span><span class="hl-brackets">}</span><span class="hl-code">
   
      </span><span class="hl-comment">//</span><span class="hl-comment"> Calculate the checkdigit</span><span class="hl-comment"></span><span class="hl-code">
      </span><span class="hl-var">$tot</span><span class="hl-code"> = </span><span class="hl-number">3</span><span class="hl-code">*</span><span class="hl-var">$et</span><span class="hl-code"> + </span><span class="hl-var">$ot</span><span class="hl-code">;
      </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-number">10</span><span class="hl-code"> - </span><span class="hl-brackets">(</span><span class="hl-var">$tot</span><span class="hl-code"> % </span><span class="hl-number">10</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">%</span><span class="hl-number">10</span><span class="hl-code">;
  </span><span class="hl-brackets">}</span><span class="hl-code">
  </span><span class="hl-inlinetags">?&gt;</span></pre></td></tr></table></div><p>
                          </p>
                      </li><li class="listitem">
                          <p><span class="bold"><strong><code class="code">function
                                      GetPIC($aServiceType,$aDUNS,$aSeqNbr)</code></strong></span></p>
                          <p>
                              </p><div class="hl-main"><table class="hl-table" width="100%"><tr><td class="hl-gutter" align="right" valign="top"><pre>1
  2
  3
  4
  5
  6
  7
  8
  9
  </pre></td><td class="hl-main" valign="top"><pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">
  </span><span class="hl-comment">//</span><span class="hl-comment"> Get type 2 of confirmation code (without ZIP)</span><span class="hl-comment"></span><span class="hl-code">
  </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">GetPIC</span><span class="hl-brackets">(</span><span class="hl-var">$aServiceType</span><span class="hl-code">,</span><span class="hl-var">$aDUNS</span><span class="hl-code">,</span><span class="hl-var">$aSeqNbr</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-comment">//</span><span class="hl-comment"> Convert to USPS format with AI=91</span><span class="hl-comment"></span><span class="hl-code">
    </span><span class="hl-var">$data</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">91</span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-var">$aServiceType</span><span class="hl-code"> . </span><span class="hl-var">$aDUNS</span><span class="hl-code"> . </span><span class="hl-var">$aSeqNbr</span><span class="hl-code">;
    </span><span class="hl-var">$cd</span><span class="hl-code"> = </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_USPS_chkd</span><span class="hl-brackets">(</span><span class="hl-var">$data</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-var">$data</span><span class="hl-code"> . </span><span class="hl-var">$cd</span><span class="hl-code">;
  </span><span class="hl-brackets">}</span><span class="hl-code">
  </span><span class="hl-inlinetags">?&gt;</span></pre></td></tr></table></div><p>
                          </p>
                      </li><li class="listitem">
                          <p><span class="bold"><strong><code class="code">function
                                      GetPICwithZIP($aZIP,$aServiceType,$aDUNS,$aSeqNbr)</code></strong></span></p>
                          <p>
                              </p><div class="hl-main"><table class="hl-table" width="100%"><tr><td class="hl-gutter" align="right" valign="top"><pre>1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  15
  </pre></td><td class="hl-main" valign="top"><pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">
  </span><span class="hl-comment">//</span><span class="hl-comment"> Get type 1 of confirmation code (with ZIP)</span><span class="hl-comment"></span><span class="hl-code">
  </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">GetPICwithZIP</span><span class="hl-brackets">(</span><span class="hl-var">$aZIP</span><span class="hl-code">,</span><span class="hl-var">$aServiceType</span><span class="hl-code">,</span><span class="hl-var">$aDUNS</span><span class="hl-code">,</span><span class="hl-var">$aSeqNbr</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
     </span><span class="hl-comment">//</span><span class="hl-comment"> Convert to USPS format with AI=420 and extension starting </span><span class="hl-comment"></span><span class="hl-code">
     </span><span class="hl-comment">//</span><span class="hl-comment"> with AI=91</span><span class="hl-comment"></span><span class="hl-code">
     </span><span class="hl-var">$data</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">420</span><span class="hl-quotes">'</span><span class="hl-code">. </span><span class="hl-var">$aZIP</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">91</span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-var">$aServiceType</span><span class="hl-code"> . 
               </span><span class="hl-var">$aDUNS</span><span class="hl-code"> . </span><span class="hl-var">$aSeqNbr</span><span class="hl-code">;
     </span><span class="hl-comment">//</span><span class="hl-comment"> Only calculate the checkdigit from the AI=91 and forward</span><span class="hl-comment"></span><span class="hl-code">
     </span><span class="hl-comment">//</span><span class="hl-comment"> and do not include the ~1 (FUNC1) in the calculation</span><span class="hl-comment"></span><span class="hl-code">
     </span><span class="hl-var">$cd</span><span class="hl-code"> = </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_USPS_chkd</span><span class="hl-brackets">(</span><span class="hl-identifier">substr</span><span class="hl-brackets">(</span><span class="hl-var">$data</span><span class="hl-code">,</span><span class="hl-number">8</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
     </span><span class="hl-var">$data</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">420</span><span class="hl-quotes">'</span><span class="hl-code">. </span><span class="hl-var">$aZIP</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">~191</span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-var">$aServiceType</span><span class="hl-code"> . 
                </span><span class="hl-var">$aDUNS</span><span class="hl-code"> . </span><span class="hl-var">$aSeqNbr</span><span class="hl-code">;
     </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-var">$data</span><span class="hl-code"> . </span><span class="hl-var">$cd</span><span class="hl-code">;
  </span><span class="hl-brackets">}</span><span class="hl-code">
  </span><span class="hl-inlinetags">?&gt;</span></pre></td></tr></table></div><p>
                          </p>
                          <p>All that now remains is to tie this together with the EAN-128 standard
                              barcode generation in order to crate the confirmation code. The
                              following script shows how this can be done </p>
                          <p>
                              </p><div class="hl-main"><table class="hl-table" width="100%"><tr><td class="hl-gutter" align="right" valign="top"><pre>1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  15
  </pre></td><td class="hl-main" valign="top"><pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">
  </span><span class="hl-var">$zip</span><span class="hl-code">     = </span><span class="hl-quotes">'</span><span class="hl-string">92663</span><span class="hl-quotes">'</span><span class="hl-code">;     </span><span class="hl-comment">//</span><span class="hl-comment"> Zip code</span><span class="hl-comment"></span><span class="hl-code">
  </span><span class="hl-var">$service</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">21</span><span class="hl-quotes">'</span><span class="hl-code">;        </span><span class="hl-comment">//</span><span class="hl-comment"> Service 21 = Priority Mail</span><span class="hl-comment"></span><span class="hl-code">
  </span><span class="hl-var">$DUNS</span><span class="hl-code">    = </span><span class="hl-quotes">'</span><span class="hl-string">805213907</span><span class="hl-quotes">'</span><span class="hl-code">; </span><span class="hl-comment">//</span><span class="hl-comment"> DUNS</span><span class="hl-comment"></span><span class="hl-code">
  </span><span class="hl-var">$seqnr</span><span class="hl-code">   = </span><span class="hl-quotes">'</span><span class="hl-string">04508735</span><span class="hl-quotes">'</span><span class="hl-code">;  </span><span class="hl-comment">//</span><span class="hl-comment"> Seqnr</span><span class="hl-comment"></span><span class="hl-code">
   
  </span><span class="hl-var">$usps</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">USPS_Confirmation</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-var">$data</span><span class="hl-code"> = </span><span class="hl-var">$usps</span><span class="hl-code">-&gt;</span><span class="hl-identifier">GetPICwithZIP</span><span class="hl-brackets">(</span><span class="hl-var">$zip</span><span class="hl-code">,</span><span class="hl-var">$service</span><span class="hl-code">,</span><span class="hl-var">$DUNS</span><span class="hl-code">,</span><span class="hl-var">$seqnr</span><span class="hl-brackets">)</span><span class="hl-code">;
   
  </span><span class="hl-var">$encoder</span><span class="hl-code"> = </span><span class="hl-identifier">BarcodeFactory</span><span class="hl-code">::</span><span class="hl-identifier">Create</span><span class="hl-brackets">(</span><span class="hl-identifier">ENCODING_EAN128</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-var">$e</span><span class="hl-code"> = </span><span class="hl-identifier">BackendFactory</span><span class="hl-code">::</span><span class="hl-identifier">Create</span><span class="hl-brackets">(</span><span class="hl-identifier">BACKEND_IMAGE</span><span class="hl-code">,</span><span class="hl-var">$encoder</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">SetModuleWidth</span><span class="hl-brackets">(</span><span class="hl-number">2</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">SetFont</span><span class="hl-brackets">(</span><span class="hl-identifier">FF_ARIAL</span><span class="hl-code">,</span><span class="hl-identifier">FS_NORMAL</span><span class="hl-code">,</span><span class="hl-number">14</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">Stroke</span><span class="hl-brackets">(</span><span class="hl-var">$data</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-inlinetags">?&gt;</span></pre></td></tr></table></div><p>
                          </p>
                          <p>The script above will then generate the following barcode </p>
                          <div class="figure"><a name="id2620371"></a><p class="title"><b>Figure 33.2. USPS example 1</b></p><div class="figure-contents">
                              
                              <div class="mediaobject"><img src="images/usps_ex1.png" alt="USPS example 1"></div>
                          </div></div><br class="figure-break">
                      </li></ol></div><p>
              </p>
              <p>
                  </p><div class="caution" title="Caution" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Caution</h3>
                      <p>Even though only numbers are input to the PIC, integers should not be used
                          since initial "0":s will be lost. Use strings as the example above shows.
                      </p>
                  </div><p>
              </p>
              <p><span class="bold"><strong>Additional example</strong></span></p>
              <p>The following script shows how to generate PIC that does not use Zip codes. </p>
              <p>
                  </p><div class="hl-main"><table class="hl-table" width="100%"><tr><td class="hl-gutter" align="right" valign="top"><pre>1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  </pre></td><td class="hl-main" valign="top"><pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">
  </span><span class="hl-var">$service</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">01</span><span class="hl-quotes">'</span><span class="hl-code">;         </span><span class="hl-comment">//</span><span class="hl-comment"> Priority mail</span><span class="hl-comment"></span><span class="hl-code">
  </span><span class="hl-var">$DUNS</span><span class="hl-code">    = </span><span class="hl-quotes">'</span><span class="hl-string">123456789</span><span class="hl-quotes">'</span><span class="hl-code">;  </span><span class="hl-comment">//</span><span class="hl-comment"> DUNS</span><span class="hl-comment"></span><span class="hl-code">
  </span><span class="hl-var">$seqnr</span><span class="hl-code">   = </span><span class="hl-quotes">'</span><span class="hl-string">00000001</span><span class="hl-quotes">'</span><span class="hl-code">;   </span><span class="hl-comment">//</span><span class="hl-comment"> Seqnr</span><span class="hl-comment"></span><span class="hl-code">
   
  </span><span class="hl-var">$usps</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">USPS_Confirmation</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-var">$data</span><span class="hl-code"> = </span><span class="hl-var">$usps</span><span class="hl-code">-&gt;</span><span class="hl-identifier">GetPIC</span><span class="hl-brackets">(</span><span class="hl-var">$service</span><span class="hl-code">,</span><span class="hl-var">$DUNS</span><span class="hl-code">,</span><span class="hl-var">$seqnr</span><span class="hl-brackets">)</span><span class="hl-code">;
   
  </span><span class="hl-var">$encoder</span><span class="hl-code"> = </span><span class="hl-identifier">BarcodeFactory</span><span class="hl-code">::</span><span class="hl-identifier">Create</span><span class="hl-brackets">(</span><span class="hl-identifier">ENCODING_EAN128</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-var">$e</span><span class="hl-code"> = </span><span class="hl-identifier">BackendFactory</span><span class="hl-code">::</span><span class="hl-identifier">Create</span><span class="hl-brackets">(</span><span class="hl-identifier">BACKEND_IMAGE</span><span class="hl-code">,</span><span class="hl-var">$encoder</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">SetModuleWidth</span><span class="hl-brackets">(</span><span class="hl-number">2</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">SetFont</span><span class="hl-brackets">(</span><span class="hl-identifier">FF_ARIAL</span><span class="hl-code">,</span><span class="hl-identifier">FS_NORMAL</span><span class="hl-code">,</span><span class="hl-number">14</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">Stroke</span><span class="hl-brackets">(</span><span class="hl-var">$data</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-inlinetags">?&gt;</span></pre></td></tr></table></div><p>
              </p>
              <p>The script above will generate the following confirmation barcode.</p>
              <div class="figure"><a name="id2620430"></a><p class="title"><b>Figure 33.3. USPS example 2</b></p><div class="figure-contents">
                  
                  <div class="mediaobject"><img src="images/usps_ex2.png" alt="USPS example 2"></div>
              </div></div><br class="figure-break">
              <p>A complete script to implement this is available in the distribution as
                      "<code class="filename">barcode/examples/barcode_usps_example.php</code>"</p>
          </div>
      </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"><a accesskey="u" href="pt08.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>