<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.barcode.creation">
    <title>Barcodes mit Hilfe der Zend_Barcode Klasse erstellen</title>

    <sect2 id="zend.barcode.creation.configuration">
        <title>Verwendung von Zend_Barcode::factory</title>

        <para>
            <classname>Zend_Barcode</classname> verwendet eine Factory Methode um die Instanz eines
            Renderers zu erstellen der <classname>Zend_Barcode_Renderer_RendererAbstract</classname>
            erweitert. Die Factory Methode akzeptiert fünf Argumente.
        </para>

        <orderedlist>
            <listitem>
                <para>Der Name des Barcode Formats (z.B., "code39") (benötigt)</para>
            </listitem>

            <listitem>
                <para>Der Name des Renderers (z.B., "image") (benötigt)</para>
            </listitem>

            <listitem>
                <para>
                    Optionen die an das Barcode Objekt übergeben werden (ein Array oder
                    <classname>Zend_Config</classname> Objekt) (optional)
                </para>
            </listitem>

            <listitem>
                <para>
                    Optionen die an das Renderer Objekt übergeben werden (ein Array oder
                    <classname>Zend_Config</classname> Object) (optional)
                </para>
            </listitem>

            <listitem>
                <para>
                    Ein Boolean um anzuzeigen ob Fehler automatisch dargestellt werden sollen oder
                    nicht. Wenn eine Exception stattfindet, wird das angegebene Barcode Objekt mit
                    der Repräsentation des Fehlers ersetzt (optional der Standardwert
                    <constant>TRUE</constant>)
                </para>
            </listitem>
        </orderedlist>

        <example id="zend.barcode.creation.configuration.example-1">
            <title>Einen Renderer mit Zend_Barcode::factory() erhalten</title>

            <para>
                <methodname>Zend_Barcode::factory()</methodname> instanziert Barcode Objekte und
                Renderer und verbindet diese miteinander. In diesem ersten Beispiel verwenden wir
                den <emphasis>Code39</emphasis> Barcode Typ zusammen mit dem
                <emphasis>Image</emphasis> Renderer.
            </para>

            <programlisting language="php"><![CDATA[
// Nur der darzustellende Text wird benötigt
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');

// Keine Optionen benötigt
$rendererOptions = array();
$renderer = Zend_Barcode::factory(
    'code39', 'image', $barcodeOptions, $rendererOptions
);
]]></programlisting>
        </example>

        <example id="zend.barcode.creation.configuration.example-2">
            <title>Zend_Barcode::factory() mit Zend_Config Objekten verwenden</title>

            <para>
                Man kann ein <classname>Zend_Config</classname> Objekt an die Factory übergeben um
                die notwendigen Objekte zu erstellen. Das folgende Beispiel ist funktionell
                identisch mit dem vorherigen.
            </para>

            <programlisting language="php"><![CDATA[
// Nur ein Zend_Config Objekt verwenden
$config = new Zend_Config(array(
    'barcode'        => 'code39',
    'barcodeParams'  => array('text' => 'ZEND-FRAMEWORK'),
    'renderer'       => 'image',
    'rendererParams' => array('imageType' => 'gif'),
));

$renderer = Zend_Barcode::factory($config);
]]></programlisting>
        </example>
    </sect2>

    <sect2 id="zend.barcode.creation.drawing">
        <title>Einen Barcode zeichnen</title>

        <para>
            Wenn der Barcode <emphasis>gezeichnet</emphasis> wird, empfängt man die Ressource in
            welcher der Barcode gezeichnet wird. Um einen Barcode zu zeichnen kann man die
            <methodname>draw()</methodname> Methode des Renderers aufrufen, oder einfach die von
            <classname>Zend_Barcode</classname> angebotene Proxy Methode verwenden.
        </para>

        <example id="zend.barcode.creation.drawing.example-1">
            <title>Einen Barcode mit dem Renderer Objekt zeichnen</title>

            <programlisting language="php"><![CDATA[
// Nur der zu zeichnende Text wird benötigt
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');

// Keine Optionen benötigt
$rendererOptions = array();

// Zeichne den Barcode in einem neuen Bild
$imageResource = Zend_Barcode::factory(
    'code39', 'image', $barcodeOptions, $rendererOptions
)->draw();
]]></programlisting>
        </example>

        <example id="zend.barcode.creation.drawing.example-2">
            <title>Einen Barcode mit Zend_Barcode::draw() zeichnen</title>

            <programlisting language="php"><![CDATA[
// Nur der zu zeichnende Text wird benötigt
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');

// Keine Optionen benötigt
$rendererOptions = array();

// Zeichne den Barcode in einem neuen Bild
$imageResource = Zend_Barcode::draw(
    'code39', 'image', $barcodeOptions, $rendererOptions
);
]]></programlisting>
        </example>
    </sect2>

    <sect2 id="zend.barcode.creation.renderering">
        <title>Einen Barcode darstellen</title>

        <para>
            Wenn man einen Barcode darstellt, zeichnet man den Barcode, man sendet die Header und
            man sendet die Ressource (z.B. zu einem Browser). Um einen Barcode darzustellen muss
            man die <methodname>render()</methodname> Methode des Renderers aufrufen, oder einfach
            die Proxy Methode verwenden die von <classname>Zend_Barcode</classname> angeboten wird.
        </para>

        <example id="zend.barcode.creation.renderering.example-1">
            <title>Einen Barcode mit dem Renderer Objekt darstellen</title>

            <programlisting language="php"><![CDATA[
// Nur der zu zeichnende Text wird benötigt
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');

// Keine Optionen benötigt
$rendererOptions = array();

// Zeichne den Barcode in einem neuen Bild
// Sende die Header und das Bild
Zend_Barcode::factory(
    'code39', 'image', $barcodeOptions, $rendererOptions
)->render();
]]></programlisting>

            <para>
                Das wird diesen Barcode erstellen:
            </para>

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

        <example id="zend.barcode.creation.renderering.example-2">
            <title>Einen Barcode mit Zend_Barcode::render() darstellen</title>

            <programlisting language="php"><![CDATA[
// Nur der zu zeichnende Text wird benötigt
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');

// Keine Optionen benötigt
$rendererOptions = array();

// Zeichne den Barcode in einem neuen Bild
// Sende die Header und das Bild
Zend_Barcode::render(
    'code39', 'image', $barcodeOptions, $rendererOptions
);
]]></programlisting>

            <para>
                Das wird den selben Barcode erzeugen wie im vorherigen Beispiel.
            </para>
        </example>
    </sect2>
</sect1>
