283 lines
29 KiB
HTML
283 lines
29 KiB
HTML
|
<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
|
|||
|
& 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"><?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"> <= </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"> <= </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">?></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"><?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">-></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">?></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"><?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">-></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">?></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"><?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">-></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">-></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">-></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">-></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">?></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"><?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">-></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">-></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">-></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">-></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">?></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>
|