zint/docs/backend.html
2009-02-22 17:19:59 +00:00

1559 lines
39 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
<TITLE>Using the API</TITLE>
</HEAD>
<BODY LANG="en-GB" TEXT="#000000" LINK="#0000ff" VLINK="#840084" BGCOLOR="#ffffff" DIR="LTR">
<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TH COLSPAN=3>
<P ALIGN=CENTER>Zint Barcode Generator</P>
</TH>
</TR>
<TR VALIGN=BOTTOM>
<TD WIDTH=10%>
<P ALIGN=LEFT><A HREF="frontend.html">Prev</A></P>
</TD>
<TD WIDTH=80%></TD>
<TD WIDTH=10%>
<P ALIGN=RIGHT><A HREF="symbologies.html">Next</A></P>
</TD>
</TR>
</TABLE>
<HR>
<H1>4. Using the API</H1>
<P>The <I>libzint</I> API has been designed to be very similar to
that used by the <A HREF="http://www.gnu.org/software/barcode/barcode.html">GNU
Barcode</A> package. This allows easy migration from GNU Barcode to
<I>Zint</I>. <I>Zint</I>, however, uses none of the same function
names or option names as <I>GNU Barcode</I>. This allows you to use
both packages in your application without conflict if you wish.</P>
<P><A NAME="CREATE"></A><FONT SIZE=5><B>4.1
Creating and Deleting Symbols</B></FONT></P>
<P>The symbols manipulated by Zint are
held in a <FONT FACE="Courier, monospace">zint_symbol</FONT>
structure defined in <FONT FACE="Courier, monospace">zint.h</FONT>.
These symbols are created with the <FONT FACE="Courier, monospace">ZBarcode_Create()</FONT>
function and deleted using the <FONT FACE="Courier, monospace">ZBarcode_Delete()</FONT>
function. For example the following code creates and then deletes a
symbol:</P>
<P><FONT FACE="Courier, monospace"><FONT SIZE=2>#include
&lt;stdio.h&gt;<BR>#include &lt;zint.h&gt;<BR><BR>int
main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;struct zint_symbol
*my_symbol;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;my_symbol =
ZBarcode_Create();<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(my_symbol != NULL)
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;Symbol
successfully
created!\n&quot;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;ZBarcode_Delete(my_symbol);<BR>&nbsp;&nbsp;&nbsp;&nbsp;return
0;<BR>}</FONT></FONT></P>
<P>When compiling this code it will need to be linked with the
<I>libzint</I> library using the -lzint option:</P>
<P><FONT FACE="Courier, monospace"><FONT SIZE=2>gcc -o simple
simple.c -lzint</FONT></FONT></P>
<P><A NAME="ENCODE"></A><FONT SIZE=5><B>4.2 Encoding and Saving to
File</B></FONT></P>
<P>To encode data in a barcode use the <FONT FACE="Courier, monospace">ZBarcode_Encode()</FONT>
function. To write the symbol to a file use the <FONT FACE="Courier, monospace">ZBarcode_Print()</FONT>
function. For example the following code takes a string from the
command line and outputs a Code 128 symbol in a PNG file named
out.png in the current working directory:</P>
<P><FONT FACE="Courier, monospace"><FONT SIZE=2>#include
&lt;stdio.h&gt;<BR>#include &lt;zint.h&gt;<BR><BR>int main(int argc,
char **argv)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;struct zint_symbol
*my_symbol;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;my_symbol =
ZBarcode_Create();<BR>&nbsp;&nbsp;&nbsp;&nbsp;ZBarcode_Encode(my_symbol,
argv[1]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ZBarcode_Print(my_symbol);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ZBarcode_Delete(my_symbol);<BR>&nbsp;&nbsp;&nbsp;&nbsp;return
0;<BR>}</FONT></FONT></P>
<P>This can also be done in one stage using the
<FONT FACE="Courier, monospace">ZBarcode_Encode_and_Print()</FONT>
function as shown in the next example:</P>
<P><FONT FACE="Courier, monospace"><FONT SIZE=2>#include
&lt;stdio.h&gt;<BR>#include &lt;zint.h&gt;<BR><BR>int main(int argc,
char **argv)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;struct zint_symbol
*my_symbol;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;my_symbol =
ZBarcode_Create();<BR>&nbsp;&nbsp;&nbsp;&nbsp;ZBarcode_Encode_and_Print(my_symbol,
argv[1]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ZBarcode_Delete(my_symbol);<BR>&nbsp;&nbsp;&nbsp;&nbsp;return
0;<BR>}</FONT></FONT></P>
<P>Input strings should be Unicode formatted.</P>
<P><A NAME="OPTIONS"></A><FONT SIZE=5><B>4.3 Setting Options</B></FONT></P>
<P>So far our application is not very useful unless we plan to only
make Code 128 barcodes and we don't mind that they only save to
out.png. As with the front end program, of course, these options can
be altered. The way this is done is by altering the contents of the
<FONT FACE="Courier, monospace">zint_symbol</FONT> structure between
the creation and encoding stages. The <FONT FACE="Courier, monospace">zint_symbol</FONT>
structure consists of the following variables:</P>
<CENTER>
<TABLE WIDTH=80% BORDER=1>
<THEAD>
<TR VALIGN=TOP>
<TH>
<P>Variable Name</P>
</TH>
<TH>
<P>Type</P>
</TH>
<TH>
<P>Meaning</P>
</TH>
<TH>
<P>Default Value</P>
</TH>
</TR>
</THEAD>
<TBODY>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">symbology</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>integer</P>
</TD>
<TD>
<P ALIGN=CENTER>Symbology to use (see section 4.5).</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_CODE128</FONT></P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">height</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>integer</P>
</TD>
<TD>
<P ALIGN=CENTER>Symbol height. [1]</P>
</TD>
<TD>
<P ALIGN=CENTER>50</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">whitespace_width</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>integer</P>
</TD>
<TD>
<P ALIGN=CENTER>Whitespace width.</P>
</TD>
<TD>
<P ALIGN=CENTER>0</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">boder_width</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>integer</P>
</TD>
<TD>
<P ALIGN=CENTER>Border width.</P>
</TD>
<TD>
<P ALIGN=CENTER>0</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">output_options</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>integer</P>
</TD>
<TD>
<P ALIGN=CENTER>Binding or box parameters (see section 4.6). [2]</P>
</TD>
<TD>
<P ALIGN=CENTER>(none)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">fgcolour</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>character string</P>
</TD>
<TD>
<P ALIGN=CENTER>Foreground (ink) colour as RGB hexadecimal
string. Must be 6 characters followed by terminating \0
character.</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">&quot;000000&quot;</FONT></P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">bgcolour</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>character string</P>
</TD>
<TD>
<P ALIGN=CENTER>Background (paper) colour as RGB hexadecimal
string. Must be 6 characters followed by terminating \0
character.</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">&quot;ffffff&quot;</FONT></P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">outfile</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>character string</P>
</TD>
<TD>
<P ALIGN=CENTER>Contains the name of the file to output a
resulting barcode symbol to. Must end in .png, .eps or .svg</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">&quot;out.png&quot;</FONT></P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">option_1</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>integer</P>
</TD>
<TD>
<P ALIGN=CENTER>Symbology specific options.</P>
</TD>
<TD>
<P ALIGN=CENTER>(automatic)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">option_2</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>integer</P>
</TD>
<TD>
<P ALIGN=CENTER>Symbology specific options.</P>
</TD>
<TD>
<P ALIGN=CENTER>(automatic)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">scale</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>float</P>
</TD>
<TD>
<P ALIGN=CENTER>Scale factor for adjusting size of image.</P>
</TD>
<TD>
<P ALIGN=CENTER>1.0</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">nullchar</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>char</P>
</TD>
<TD>
<P ALIGN=CENTER>Character to substitute for NULL</P>
</TD>
<TD>
<P ALIGN=CENTER>NULL</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">input_mode</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>integer</P>
</TD>
<TD>
<P ALIGN=CENTER>Set encoding of input data (see 4.8)</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">BINARY_MODE</FONT></P>
</TD>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">primary</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>character string</P>
</TD>
<TD>
<P ALIGN=CENTER>Primary message data for more complex symbols.</P>
</TD>
<TD>
<P ALIGN=CENTER>NULL</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">text</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>unsigned character string</P>
</TD>
<TD>
<P ALIGN=CENTER>Human readable text, which usually consists of
the input data plus one or more check digits. Uses UTF-8 formatting.</P>
</TD>
<TD>
<P ALIGN=CENTER>NULL</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">rows</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>integer</P>
</TD>
<TD>
<P ALIGN=CENTER>Number of rows used by the symbol or, if using
barcode stacking, the row to be used by the next symbol.</P>
</TD>
<TD>
<P ALIGN=CENTER>(output only)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">width</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>integer</P>
</TD>
<TD>
<P ALIGN=CENTER>Width of the generated symbol.</P>
</TD>
<TD>
<P ALIGN=CENTER>(output only)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">encoding_data</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>array of character strings</P>
</TD>
<TD>
<P ALIGN=CENTER>Representation of the encoded data.</P>
</TD>
<TD>
<P ALIGN=CENTER>(output only)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">row_height</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>array of integers</P>
</TD>
<TD>
<P ALIGN=CENTER>Representation of the height of a row.</P>
</TD>
<TD>
<P ALIGN=CENTER>(output only)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">errtxt</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>character string</P>
</TD>
<TD>
<P ALIGN=CENTER>Error message in the event that an error
occurred.</P>
</TD>
<TD>
<P ALIGN=CENTER>(output only)</P>
</TD>
</TR>
</TBODY>
</TABLE>
</CENTER>
<P>To alter these values use the syntax shown in the example below.
This code has the same result as the previous example except the
output is now taller and plotted in green.</P>
<P><FONT FACE="Courier, monospace"><FONT SIZE=2>#include
&lt;stdio.h&gt;<BR>#include &lt;zint.h&gt;<BR>#include
&lt;string.h&gt;<BR><BR>int main(int argc, char **argv)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;struct
zint_symbol *my_symbol;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;my_symbol =
ZBarcode_Create();<BR>&nbsp;&nbsp;&nbsp;&nbsp;strcpy(my_symbol-&gt;fgcolour,
&quot;00ff00&quot;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;my_symbol-&gt;height
= 400;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ZBarcode_Encode_and_Print(my_symbol,
argv[1]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ZBarcode_Delete(my_symbol);<BR>&nbsp;&nbsp;&nbsp;&nbsp;return
0;<BR>}</FONT></FONT></P>
<P><A NAME="ERRORS"></A><FONT SIZE=5><B>4.4 Handling Errors</B></FONT></P>
<P>If errors occur during encoding an integer value is passed back to
the calling application. In addition the <FONT FACE="Courier">errtxt</FONT>
value is used to give a message detailing the nature of the error.
The errors generated by Zint are given in the table below:</P>
<CENTER>
<TABLE WIDTH=80% BORDER=1>
<COL WIDTH=270>
<COL WIDTH=513>
<THEAD>
<TR VALIGN=TOP>
<TH>
<P>Return Value</P>
</TH>
<TH>
<P>Meaning</P>
</TH>
</TR>
</THEAD>
<TBODY>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">WARN_INVALID_OPTION</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>One of the values in <FONT FACE="Courier, monospace">zint_struct</FONT>
was set incorrectly but Zint has made a guess at what it should
have been and generated a barcode accordingly.</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">ERROR_TOO_LONG</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>The input data is too long or too short for the
selected symbology. No symbol has been generated.</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">ERROR_INVALID_DATA</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>The data to be encoded includes characters which
are not permitted by the selected symbology (e.g. alphabetic
characters in an EAN symbol). No symbol has been generated.</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">ERROR_INVALID_CHECK</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>An ISBN with an incorrect check digit has been
entered. No symbol has been generated.</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">ERROR_INVALID_OPTION</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>One of the values in <FONT FACE="Courier, monospace">zint_struct</FONT>
was set incorrectly and Zint was unable to guess what it should
have been. No symbol has been generated.</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">ERROR_ENCODING_PROBLEM</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>A problem has occurred during encoding of the
data. This should never happen. Please contact the developer if
you encounter this error.</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">ERROR_FILE_ACCESS</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Zint was unable to open the requested output
file. This is usually a file permissions problem.</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">ERROR_MEMORY</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Zint ran out of memory. This should only be a
problem with legacy systems.</P>
</TD>
</TR>
</TBODY>
</TABLE>
</CENTER>
<P>To catch errors use an integer variable as shown in the code
below:</P>
<P><FONT FACE="Courier, monospace"><FONT SIZE=2>#include
&lt;stdio.h&gt;<BR>#include &lt;zint.h&gt;<BR>#include
&lt;string.h&gt;<BR><BR>int main(int argc, char **argv)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;struct
zint_symbol *my_symbol;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int error =
0;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;my_symbol =
ZBarcode_Create();<BR>&nbsp;&nbsp;&nbsp;&nbsp;strcpy(my_symbol-&gt;fgcolour,
&quot;nonsense&quot;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;error =
ZBarcode_Encode_and_Print(my_symbol, argv[1]);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;if(error
!= 0) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* some
error occurred */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;%s\n&quot;,
my_symbol-&gt;errtxt);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;if(error
&gt; WARN_INVALID_OPTION) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*
stop now */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZBarcode_Delete(my_symbol);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return
1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;/*
otherwise carry on with the rest of the application
*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;ZBarcode_Delete(my_symbol);<BR>&nbsp;&nbsp;&nbsp;&nbsp;return
0;<BR>}</FONT></FONT></P>
<P>This code will exit with the appropriate message:</P>
<P><FONT FACE="Courier, monospace"><FONT SIZE=2>error: malformed
foreground colour target</FONT></FONT></P>
<P><A NAME="SYMBOL"></A><FONT SIZE=5><B>4.5 Specifying a Symbology</B></FONT></P>
<P>Symbologies can be specified by number or by name as shown in the
following table. For example</P>
<P><FONT FACE="Courier, monospace"><FONT SIZE=2>symbol-&gt;symbology
= BARCODE_LOGMARS;</FONT></FONT></P>
<P>means the same as</P>
<P><FONT FACE="Courier, monospace"><FONT SIZE=2>symbol-&gt;symbology
= 50;</FONT></FONT></P>
<CENTER>
<TABLE WIDTH=80% BORDER=1>
<THEAD>
<TR VALIGN=TOP>
<TH>
<P>Numeric Value</P>
</TH>
<TH>
<P>Name</P>
</TH>
<TH>
<P>Symbology</P>
</TH>
</TR>
</THEAD>
<TBODY>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>1</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_CODE11</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Code 11</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>2</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_C25MATRIX</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Standard Code 2 of 5</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>3</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_C25INTER</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Interleaved 2 of 5</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>4</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_C25IATA</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Code 2 of 5 IATA</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>6</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_C25LOGIC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Code 2 of 5 Data Logic</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>7</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_C25IND</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Code 2 of 5 Industrial</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>8</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_CODE39</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Code 3 of 9 (Code 39)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>9</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_EXCODE39</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Extended Code 3 of 9 (Code 39+)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>13</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_EANX</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>EAN</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>16</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_EAN128</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>GS1-128</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>18</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_CODABAR</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Codabar</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>20</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_CODE128</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Code 128 (automatic subset switching)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>21</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_DPLEIT</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Deutshe Post Leitcode</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>22</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_DPIDENT</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Deutshe Post Identcode</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>23</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_CODE16K</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Code 16K</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>25</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_CODE93</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Code 93</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>28</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_FLAT</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Flattermarken</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>29</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_RSS14</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>GS1 DataBar-14</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>30</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_RSS_LTD</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>GS1 DataBar Limited</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>31</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_RSS_EXP</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>GS1 DataBar Expanded</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>32</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_TELEPEN</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Telepen Alpha</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>34</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_UPCA</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>UPC A</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>37</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_UPCE</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>UPC E</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>40</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_POSTNET</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>PostNet</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>47</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_MSI_PLESSEY</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>MSI Plessey</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>49</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_FIM</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>FIM</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>50</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_LOGMARS</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>LOGMARS</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>51</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_PHARMA</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Pharmacode One-Track</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>52</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_PZN</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>PZN</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>53</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_PHARMA_TWO</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Pharmacode Two-Track</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>55</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_PDF417</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>PDF417</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>56</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_PDF417TRUNC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>PDF417 Truncated</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>57</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_MAXICODE</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Maxicode</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>58</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_QRCODE</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>QR Code</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>60</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_CODE128B</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Code 128 (Subset B)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>63</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_AUSPOST</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Australia Post Standard Customer</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>66</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_AUSREPLY</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Australia Post Reply Paid</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>67</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_AUSROUTE</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Australia Post Routing</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>68</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_AUSREDIRECT</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Australia Post Redirection</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>69</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_ISBNX</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>ISBN (EAN-13 with verification stage)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>70</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_RM4SCC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Royal Mail 4 State (RM4SCC)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>71</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_DATAMATRIX</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Data Matrix</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>72</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_EAN14</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>EAN-14</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>75</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_NVE18</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>NVE-18</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>77</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_KOREAPOST</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Korea Post</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>79</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_RSS14STACK</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>GS1 DataBar-14 Stacked</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>80</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_RSS14STACK_OMNI</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>GS1 DataBar-14 Stacked Omnidirectional</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>81</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_RSS_EXPSTACK</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>GS1 DataBar Expanded Stacked</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>82</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_PLANET</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>PLANET</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>84</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_MICROPDF417</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>MicroPDF417</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>85</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_ONECODE</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>USPS OneCode</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>86</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_PLESSEY</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Plessey Code</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>87</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_TELEPEN_NUM</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Telepen Numeric</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>89</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_ITF14</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>ITF-14</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>90</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_KIX</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Dutch Post KIX Code</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>92</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_AZTEC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Aztec Code</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>93</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_DAFT</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>DAFT Code</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>97</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_MICROQR</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Micro QR Code</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>98</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_HIBC_128</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>HIBC Code 128</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>99</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_HIBC_39</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>HIBC Code 39</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>102</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_HIBC_DM</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>HIBC Data Matrix</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>104</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_HIBC_QR</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>HIBC QR Code</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>106</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_HIBC_PDF</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>HIBC PDF417</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>108</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_HIBC_MICPDF</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>HIBC MicroPDF417</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>110</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_HIBC_BLOCKF</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>HIBC Codablock-F</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>128</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">BARCODE_AZRUNE</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Aztec Runes</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>129</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">BARCODE_CODE32</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Code 32</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>130</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">BARCODE_EANX_CC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Composite Symbol with EAN linear component</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>131</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">BARCODE_EAN128_CC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Composite Symbol with GS1-128 linear component</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>132</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">BARCODE_RSS14_CC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Composite Symbol with GS1 DataBar-14 linear
component</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>133</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">BARCODE_RSS_LTD_CC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Composite Symbol with GS1 DataBar Limited
component</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>134</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">BARCODE_RSS_EXP_CC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Composite Symbol with GS1 DataBar Extended
component</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>135</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">BARCODE_UPCA_CC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Composite Symbol with UPC A linear component</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>136</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">BARCODE_UPCE_CC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Composite Symbol with UPC E linear component</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>137</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">BARCODE_RSS14STACK_CC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Composite Symbol with GS1 DataBar-14 Stacked
component</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>138</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">BARCODE_RSS14_OMNI_CC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Composite Symbol with GS1 DataBar-14 Stacked
Omnidirectional component</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER>139</P>
</TD>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier">BARCODE_RSS_EXPSTACK_CC</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Composite Symbol with GS1 DataBar Expanded
Stacked component</P>
</TD>
</TR>
</TBODY>
</TABLE>
</CENTER>
<P><A NAME="BOXES"></A><FONT SIZE=5><B>4.6 Adding Boxes and Boundary
Bars</B></FONT></P>
<P>Boxes and boundary bars are handled using the <FONT FACE="Courier">output_options</FONT>
variable in the <FONT FACE="Courier">zint_symbol</FONT> structure. To
use this option simply assign a value to the <FONT FACE="Courier">output_options</FONT>
variable from the following table [2].</P>
<CENTER>
<TABLE WIDTH=60% BORDER=1>
<THEAD>
<TR VALIGN=TOP>
<TH>
<P>Value</P>
</TH>
<TH>
<P>Effect</P>
</TH>
</TR>
</THEAD>
<TBODY>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">0</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>No box or boundary bars.</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_BIND</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Boundary bars above and below the symbol and
between rows if stacking multiple symbols.</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BARCODE_BOX</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Add a box surrounding the symbol and whitespace.</P>
</TD>
</TR>
</TBODY>
</TABLE>
</CENTER>
<P><A NAME="ROTATE"></A><FONT SIZE=5><B>4.7 Rotating the Symbol</B></FONT></P>
<P>Rotating the output is done using the
<FONT FACE="Courier, monospace">ZBarcode_Encode_and_Print_Rotated()</FONT>
and <FONT FACE="Courier, monospace">ZBarcode_Print_Rotated()</FONT>
functions. These take an extra integer argument giving the angle of
rotation. Valid values are 0, 90, 180 and 270 degrees measured
clockwise. For example the following code generates a symbol rotated
by 90 degrees. Only PNG output can be rotated in this way.</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<FONT FACE="Courier, monospace"><FONT SIZE=2>error
= ZBarcode_Encode_and_Print_Rotated(my_symbol, argv[1], 90);</FONT></FONT></P>
<P><A NAME="INMODE"></A><FONT SIZE=5><B>4.8 Setting the Input Mode</B></FONT></P>
<P>The way in which the input data is encoded can be set using the
<FONT FACE="Courier, monospace">input_mode</FONT> property. Valid values
are shown in the table below.</P>
<CENTER>
<TABLE WIDTH=60% BORDER=1>
<THEAD>
<TR VALIGN=TOP>
<TH>
<P>Value</P>
</TH>
<TH>
<P>Effect</P>
</TH>
</TR>
</THEAD>
<TBODY>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">BINARY_MODE</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Uses full ASCII range interpreted as Latin-1 or binary data.</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">UNICODE_MODE</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Uses pre-formatted UTF-8 input.</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">GS1_MODE</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Encodes GS1 data using FNC1 characters.</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">KANJI_MODE</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Encodes Kanji characters in QR Code. (Converts UTF-8 to Shift-JIS)</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<P ALIGN=CENTER><FONT FACE="Courier, monospace">SJIS_MODE</FONT></P>
</TD>
<TD>
<P ALIGN=CENTER>Encodes Kanji characters in QR Code. (Assumes Shift-JIS input)</P>
</TD>
</TR>
</TBODY>
</TABLE>
</CENTER>
<P><BR><BR>
</P>
<P>[1] This value is ignored for Australia Post 4-State Barcodes,
PostNet, PLANET, USPS OneCode, RM4SCC, PDF417, Data Matrix, Maxicode,
QR Code, GS1 DataBar-14 Stacked, PDF417 and MicroPDF417 - all of which have a fixed
height.</P>
<P>[2] This value is ignored for Code 16k and ITF-14 symbols.</P>
<HR>
<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR VALIGN=TOP>
<TD WIDTH=33% HEIGHT=5>
<P ALIGN=LEFT><A HREF="frontend.html">Prev</A></P>
</TD>
<TD WIDTH=34%>
<P ALIGN=CENTER><A HREF="index.html">Home</A></P>
</TD>
<TD WIDTH=33%>
<P ALIGN=RIGHT><A HREF="symbologies.html">Next</A></P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD WIDTH=33%>
<P ALIGN=LEFT>Using the Front End</P>
</TD>
<TD WIDTH=34%>
<P ALIGN=CENTER>&nbsp;</P>
</TD>
<TD WIDTH=33%>
<P ALIGN=RIGHT>Types of Symbol</P>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>