<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<sect2 id="zend.barcode.objects.details">
    <title>Description of shipped barcodes</title>

    <para>
        You will find below detailed information about all barcode types shipped by default with
        Zend Framework.
    </para>

    <sect3 id="zend.barcode.objects.details.error">
        <title>Zend_Barcode_Object_Error</title>

        <para>
            <inlinegraphic width="400" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.error.png" format="PNG"/>
        </para>

        <para>
            This barcode is a special case. It is internally used to automatically render
            an exception caught by the <classname>Zend_Barcode</classname> component.
        </para>
    </sect3>

    <sect3 id="zend.barcode.objects.details.code128">
        <title>Zend_Barcode_Object_Code128</title>

        <para>
            <inlinegraphic width="152" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.code128.png" format="PNG"/>
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> Code 128
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> the complete ASCII-character set
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> optional (modulo 103)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> variable
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>
    </sect3>

    <sect3 id="zend.barcode.objects.details.code25">
        <title>Zend_Barcode_Object_Code25</title>

        <para>
            <inlinegraphic width="152" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.code25.png" format="PNG"/>
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> Code 25 (or Code 2 of 5 or Code 25 Industrial)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> optional (modulo 10)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> variable
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>
    </sect3>

    <sect3 id="zend.barcode.objects.details.code25interleaved">
        <title>Zend_Barcode_Object_Code25interleaved</title>

        <para>
            <inlinegraphic width="101" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.int25.png" format="PNG"/>
        </para>

        <para>
            This barcode extends <classname>Zend_Barcode_Object_Code25</classname>
            (Code 2 of 5), and has the same particulars and options, and adds the following:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> Code 2 of 5 Interleaved
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> optional (modulo 10)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> variable (always even number of characters)
                </para>
            </listitem>
        </itemizedlist>

        <para>
            Available options include:
        </para>

        <table id="zend.barcode.objects.details.code25interleaved.table">
            <title>Zend_Barcode_Object_Code25interleaved Options</title>

            <tgroup cols="4">
                <thead>
                    <row>
                        <entry>Option</entry>
                        <entry>Data Type</entry>
                        <entry>Default Value</entry>
                        <entry>Description</entry>
                    </row>
                </thead>

                <tbody>
                    <row>
                        <entry><emphasis>withBearerBars</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>FALSE</constant></entry>
                        <entry>Draw a thick bar at the top and the bottom of the barcode.</entry>
                    </row>
                </tbody>
            </tgroup>
        </table>

        <note>
            <para>
                If the number of characters is not even,
                <classname>Zend_Barcode_Object_Code25interleaved</classname> will automatically
                prepend the missing zero to the barcode text.
            </para>
        </note>
    </sect3>

    <sect3 id="zend.barcode.objects.details.ean2">
        <title>Zend_Barcode_Object_Ean2</title>

        <para>
            <inlinegraphic width="41" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.ean2.png" format="PNG"/>
        </para>

        <para>
            This barcode extends <classname>Zend_Barcode_Object_Ean5</classname>
            (<acronym>EAN</acronym> 5), and has the same particulars and options, and adds the
            following:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> <acronym>EAN</acronym>-2
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> only use internally but not displayed
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> 2 characters
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>

        <note>
            <para>
                If the number of characters is lower than 2,
                <classname>Zend_Barcode_Object_Ean2</classname> will automatically
                prepend the missing zero to the barcode text.
            </para>
        </note>
    </sect3>

    <sect3 id="zend.barcode.objects.details.ean5">
        <title>Zend_Barcode_Object_Ean5</title>

        <para>
            <inlinegraphic width="68" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.ean5.png" format="PNG"/>
        </para>

        <para>
            This barcode extends <classname>Zend_Barcode_Object_Ean13</classname>
            (<acronym>EAN</acronym> 13), and has the same particulars and options, and adds the
            following:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> <acronym>EAN</acronym>-5
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> only use internally but not displayed
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> 5 characters
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>

        <note>
            <para>
                If the number of characters is lower than 5,
                <classname>Zend_Barcode_Object_Ean5</classname> will automatically
                prepend the missing zero to the barcode text.
            </para>
        </note>
    </sect3>

    <sect3 id="zend.barcode.objects.details.ean8">
        <title>Zend_Barcode_Object_Ean8</title>

        <para>
            <inlinegraphic width="82" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.ean8.png" format="PNG"/>
        </para>

        <para>
            This barcode extends <classname>Zend_Barcode_Object_Ean13</classname>
            (<acronym>EAN</acronym> 13), and has the same particulars and options, and adds the
            following:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> <acronym>EAN</acronym>-8
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> mandatory (modulo 10)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> 8 characters (including checksum)
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>

        <note>
            <para>
                If the number of characters is lower than 8,
                <classname>Zend_Barcode_Object_Ean8</classname> will automatically
                prepend the missing zero to the barcode text.
            </para>
        </note>
    </sect3>

    <sect3 id="zend.barcode.objects.details.ean13">
        <title>Zend_Barcode_Object_Ean13</title>

        <para>
            <inlinegraphic width="113" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.ean13.png" format="PNG"/>
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> <acronym>EAN</acronym>-13
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> mandatory (modulo 10)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> 13 characters (including checksum)
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>

        <note>
            <para>
                If the number of characters is lower than 13,
                <classname>Zend_Barcode_Object_Ean13</classname> will automatically
                prepend the missing zero to the barcode text.
            </para>

            <para>
                The option <property>withQuietZones</property> has no effect with this barcode.
            </para>
        </note>
    </sect3>

    <sect3 id="zend.barcode.objects.details.code39">
        <title>Zend_Barcode_Object_Code39</title>

        <para>
            <inlinegraphic width="275" align="center" valign="middle"
                fileref="figures/zend.barcode.introduction.example-1.png" format="PNG"/>
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> Code 39
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis>
                    '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ -.$/+%'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> optional (modulo 43)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> variable
                </para>
            </listitem>
        </itemizedlist>

        <note>
            <para>
                <classname>Zend_Barcode_Object_Code39</classname> will automatically add
                the start and stop characters ('*') for you.
            </para>
        </note>

        <para>
            There are no particular options for this barcode.
        </para>
    </sect3>

    <sect3 id="zend.barcode.objects.details.identcode">
        <title>Zend_Barcode_Object_Identcode</title>

        <para>
            <inlinegraphic width="137" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.identcode.png" format="PNG"/>
        </para>

        <para>
            This barcode extends <classname>Zend_Barcode_Object_Code25interleaved</classname>
            (Code 2 of 5 Interleaved), and inherits some of its capabilities; it also has a few
            particulars of its own.
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> Identcode (Deutsche Post Identcode)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> mandatory (modulo 10 different from Code25)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> 12 characters (including checksum)
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>

        <note>
            <para>
                If the number of characters is lower than 12,
                <classname>Zend_Barcode_Object_Identcode</classname> will automatically prepend
                missing zeros to the barcode text.
            </para>
        </note>
    </sect3>

    <sect3 id="zend.barcode.objects.details.itf14">
        <title>Zend_Barcode_Object_Itf14</title>

        <para>
            <inlinegraphic width="155" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.itf14.png" format="PNG"/>
        </para>

        <para>
            This barcode extends <classname>Zend_Barcode_Object_Code25interleaved</classname>
            (Code 2 of 5 Interleaved), and inherits some of its capabilities; it also has a few
            particulars of its own.
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> <acronym>ITF</acronym>-14
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> mandatory (modulo 10)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> 14 characters (including checksum)
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>

        <note>
            <para>
                If the number of characters is lower than 14,
                <classname>Zend_Barcode_Object_Itf14</classname> will automatically prepend
                missing zeros to the barcode text.
            </para>
        </note>
    </sect3>

    <sect3 id="zend.barcode.objects.details.leitcode">
        <title>Zend_Barcode_Object_Leitcode</title>

        <para>
            <inlinegraphic width="155" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.leitcode.png" format="PNG"/>
        </para>

        <para>
            This barcode extends <classname>Zend_Barcode_Object_Identcode</classname>
            (Deutsche Post Identcode), and inherits some of its capabilities; it also has a few
            particulars of its own.
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> Leitcode (Deutsche Post Leitcode)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> mandatory (modulo 10 different from Code25)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> 14 characters (including checksum)
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>

        <note>
            <para>
                If the number of characters is lower than 14,
                <classname>Zend_Barcode_Object_Leitcode</classname> will automatically
                prepend missing zeros to the barcode text.
            </para>
        </note>
    </sect3>

    <sect3 id="zend.barcode.objects.details.planet">
        <title>Zend_Barcode_Object_Planet</title>

        <para>
            <inlinegraphic width="286" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.planet.png" format="PNG"/>
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> Planet (PostaL Alpha Numeric Encoding Technique)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> mandatory (modulo 10)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> 12 or 14 characters (including checksum)
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>
    </sect3>

    <sect3 id="zend.barcode.objects.details.postnet">
        <title>Zend_Barcode_Object_Postnet</title>

        <para>
            <inlinegraphic width="286" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.postnet.png" format="PNG"/>
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> Postnet (POSTal Numeric Encoding Technique)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> mandatory (modulo 10)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> 6, 7, 10 or 12 characters (including checksum)
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>
    </sect3>

    <sect3 id="zend.barcode.objects.details.royalmail">
        <title>Zend_Barcode_Object_Royalmail</title>

        <para>
            <inlinegraphic width="158" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.royalmail.png" format="PNG"/>
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> Royal Mail or <acronym>RM4SCC</acronym> (Royal Mail
                    4-State Customer Code)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> mandatory
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> variable
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>
    </sect3>

    <sect3 id="zend.barcode.objects.details.upca">
        <title>Zend_Barcode_Object_Upca</title>

        <para>
            <inlinegraphic width="115" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.upca.png" format="PNG"/>
        </para>

        <para>
            This barcode extends <classname>Zend_Barcode_Object_Ean13</classname>
            (<acronym>EAN</acronym>-13), and inherits some of its capabilities; it also has a few
            particulars of its own.
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> <acronym>UPC</acronym>-A (Universal Product Code)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> mandatory (modulo 10)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> 12 characters (including checksum)
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>

        <note>
            <para>
                If the number of characters is lower than 12,
                <classname>Zend_Barcode_Object_Upca</classname> will automatically
                prepend missing zeros to the barcode text.
            </para>

            <para>
                The option <property>withQuietZones</property> has no effect with this barcode.
            </para>
        </note>
    </sect3>

    <sect3 id="zend.barcode.objects.details.upce">
        <title>Zend_Barcode_Object_Upce</title>

        <para>
            <inlinegraphic width="71" align="center" valign="middle"
                fileref="figures/zend.barcode.objects.details.upce.png" format="PNG"/>
        </para>

        <para>
            This barcode extends <classname>Zend_Barcode_Object_Upca</classname>
            (<acronym>UPC</acronym>-A), and inherits some of its capabilities; it also has a few
            particulars of its own. The first character of the text to encode
            is the system (0 or 1).
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>Name:</emphasis> <acronym>UPC</acronym>-E (Universal Product Code)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Allowed characters:</emphasis> '0123456789'
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Checksum:</emphasis> mandatory (modulo 10)
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>Length:</emphasis> 8 characters (including checksum)
                </para>
            </listitem>
        </itemizedlist>

        <para>
            There are no particular options for this barcode.
        </para>

        <note>
            <para>
                If the number of characters is lower than 8,
                <classname>Zend_Barcode_Object_Upce</classname> will automatically
                prepend missing zeros to the barcode text.
            </para>
        </note>

        <note>
            <para>
                If the first character of the text to encode is not 0 or 1,
                <classname>Zend_Barcode_Object_Upce</classname> will automatically
                replace it by 0.
            </para>

            <para>
                The option <property>withQuietZones</property> has no effect with this barcode.
            </para>
        </note>
    </sect3>
</sect2>
