<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.barcode.objects" xmlns:xi="http://www.w3.org/2001/XInclude">
    <title>Zend_Barcode Objekte</title>

    <para>
        Barcode Objekte erlauben es Barcodes unabhängig von der Unterstützung eines Renderers zu
        erstellen. Nach der Erstellung kann der Barcode als Array von Zeichen Anweisungen empfangen
        werden die an einen Renderer übergeben werden können.
    </para>

    <para>
        Objekte haben eine große Anzahl an Optionen. Die meisten von Ihnen sind allen Objekten
        gemein. Diese Optionen können auf vier Wegen gesetzt werden:
    </para>

    <itemizedlist>
        <listitem>
            <para>
                Als Array oder <classname>Zend_Config</classname> Objekt welches dem Constructor
                übergeben wird.
            </para>
        </listitem>

        <listitem>
            <para>
                Als Array das der <methodname>setOptions()</methodname> Methode übergeben wird.
            </para>
        </listitem>

        <listitem>
            <para>
                Als <classname>Zend_Config</classname> Objekt welches der
                <methodname>setConfig()</methodname> Methode übergeben wird.
            </para>
        </listitem>

        <listitem>
            <para>Über individuelle Setter für jeden Konfigurations Typ.</para>
        </listitem>
    </itemizedlist>

    <example id="zend.barcode.objects.configuration">
        <title>Unterschiedliche Wege ein Barcode Objekt zu parametrisieren</title>

        <programlisting language="php"><![CDATA[
$options = array('text' => 'ZEND-FRAMEWORK', 'barHeight' => 40);

// Fall 1: Constructor
$barcode = new Zend_Barcode_Object_Code39($options);

// Fall 2: setOptions()
$barcode = new Zend_Barcode_Object_Code39();
$barcode->setOptions($options);

// Fall 3: setConfig()
$config  = new Zend_Config($options);
$barcode = new Zend_Barcode_Object_Code39();
$barcode->setConfig($config);

// Fall 4: individuelle Setter
$barcode = new Zend_Barcode_Object_Code39();
$barcode->setText('ZEND-FRAMEWORK')
        ->setBarHeight(40);
]]></programlisting>
    </example>

    <sect2 id="zend.barcode.objects.common.options">
        <title>Gemeinsame Optionen</title>

        <para>
            In der folgenden Liste haben die Werte keine Einheit; wir werden den Ausdruck "Einheit"
            verwenden. Zum Beispiel, ist der Standardwert "dünner Balken" genau "1 Einheit". Die
            echte Einheit hängt von der Unterstützung beim Darstellen ab (siehe
            <link linkend="zend.barcode.renderers">die Renderer Dokumentation</link> für mehr
            Informationen). Setter werden benannt indem der erste Buchstabe der Option
            großgeschrieben und dem Namen "set" vorangestellt wird (z.B. "barHeight" =>
            "setBarHeight"). Alle Optionen haben einen entsprechenden Getter dem "get" vorangestellt
            ist (z.B. "getBarHeight"). Die vorhandenen Optionen sind:
        </para>

        <table id="zend.barcode.objects.common.options.table">
            <title>Gemeinsame Optionen</title>

            <tgroup cols="4">
                <thead>
                    <row>
                        <entry>Option</entry>
                        <entry>Daten Typ</entry>
                        <entry>Standardwert</entry>
                        <entry>Beschreibung</entry>
                    </row>
                </thead>

                <tbody>
                    <row>
                        <entry><emphasis>barcodeNamespace</emphasis></entry>
                        <entry><type>String</type></entry>
                        <entry><classname>Zend_Barcode_Object</classname></entry>

                        <entry>
                            Namespace des Renderers; zum Beispiel wenn man den Renderer erweitern
                            muss
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>barHeight</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>50</entry>
                        <entry>Höhe der Balken</entry>
                    </row>
                    <row>
                        <entry><emphasis>barThickWidth</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>3</entry>
                        <entry>Breite des dicken Balken</entry>
                    </row>

                    <row>
                        <entry><emphasis>barThinWidth</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>1</entry>
                        <entry>Breite des dünnen Balkens</entry>
                    </row>

                    <row>
                        <entry><emphasis>factor</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>1</entry>

                        <entry>
                            Faktor mit dem die Balkenbreiten und Schriftgrößen multipliziert werden
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>foreColor</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>0 (schwarz)</entry>

                        <entry>
                            Farbe des Balken und des Textes. Könnte als Integer oder als
                            <acronym>HTML</acronym> Wert übergeben werden (z.B. "#333333")
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>backgroundColor</emphasis></entry>
                        <entry><type>Integer</type> oder <type>String</type></entry>
                        <entry>16777125 (white)</entry>

                        <entry>
                            Farbe des Hintergrundes. Könnte als Integer oder als
                            <acronym>HTML</acronym> Wert übergeben werden (z.B. "#333333")
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>reverseColor</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>FALSE</constant></entry>

                        <entry>
                            Erlaubt die Änderung der Farbe des Balken und des Hintergrunds
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>orientation</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>0</entry>
                        <entry>Orientierung des Barcodes</entry>
                    </row>

                    <row>
                        <entry><emphasis>font</emphasis></entry>
                        <entry><type>String</type> oder <type>Integer</type></entry>
                        <entry><constant>NULL</constant></entry>

                        <entry>
                            Pfad zu einer <acronym>TTF</acronym> Schriftart oder eine Zahl zwischen
                            1 und 5 wenn die Bilderstellung mit GD verwendet wird (interne
                            Schriftarten)
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>fontSize</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>10</entry>

                        <entry>
                            Größe der Schriftart (nicht anwendbar bei nummerischen Schriftarten)
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>withBorder</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>FALSE</constant></entry>
                        <entry>Zeichnet einen Rahmen um den Barcode und die Randzonen</entry>
                    </row>

                    <row>
                        <entry><emphasis>withQuietZones</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>TRUE</constant></entry>
                        <entry>Lässt die Leerzone vor und nach dem Barcode weg</entry>
                    </row>

                    <row>
                        <entry><emphasis>drawText</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>TRUE</constant></entry>
                        <entry>Setzt ob der Text unter dem Barcode angezeigt wird</entry>
                    </row>

                    <row>
                        <entry><emphasis>stretchText</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>FALSE</constant></entry>

                        <entry>
                            Spezifiziert ob der Text entlang des kompletten Barcodes gestreckt
                            werden soll
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>withChecksum</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>FALSE</constant></entry>

                        <entry>
                            Zeigt ob die Checksumme dem Barcode automatisch hinzugefügt wird oder
                            nicht
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>withChecksumInText</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>FALSE</constant></entry>

                        <entry>
                            Zeigt ob die Checksumme in der textuellen Repräsentation angezeigt wird
                            oder nicht
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>text</emphasis></entry>
                        <entry><type>String</type></entry>
                        <entry><constant>NULL</constant></entry>
                        <entry>Der Text der repräsentiert wird, als Barcode</entry>
                    </row>
                </tbody>
            </tgroup>
        </table>

        <sect3 id="zend.barcode.objects.common.options.barcodefont">
            <title>Spezieller Fall der statischen setBarcodeFont()</title>

            <para>
                Man kann eine gemeinsame Schriftart für alle eigenen Objekte setzen indem die
                statische Methode <methodname>Zend_Barcode_Object::setBarcodeFont()</methodname>
                verwendet wird. Dieser Wert wird von individuellen Objekten immer überschrieben
                wenn die <methodname>setFont()</methodname> Methode verwendet wird.
            </para>

            <programlisting language="php"><![CDATA[
// In der eigenen Bootstrap Datei:
Zend_Barcode_Object::setBarcodeFont('my_font.ttf');

// Später im eigenen Code:
Zend_Barcode::render(
    'code39',
    'pdf',
    array('text' => 'ZEND-FRAMEWORK')
); // will use 'my_font.ttf'

// oder:
Zend_Barcode::render(
    'code39',
    'image',
    array(
        'text' => 'ZEND-FRAMEWORK',
        'font' => 3
    )
); // will use the 3rd GD internal font
]]></programlisting>
        </sect3>
    </sect2>

    <sect2 id="zend.barcode.objects.common.getters">
        <title>Gemeinsame zusätzliche Getter</title>

        <para></para>

        <table id="zend.barcode.objects.common.getters.table">
            <title>Gemeinsame Getter</title>

            <tgroup cols="3">
                <thead>
                    <row>
                        <entry>Getter</entry>
                        <entry>Daten Typ</entry>
                        <entry>Beschreibung</entry>
                    </row>
                </thead>

                <tbody>
                    <row>
                        <entry><methodname>getType()</methodname></entry>
                        <entry><type>String</type></entry>

                        <entry>
                            Gibt den Namen der Barcode Klasse ohne den Namespace zurück (z.B.
                            gibt <classname>Zend_Barcode_Object_Code39</classname> einfach
                            "code39" zurück)
                        </entry>
                    </row>

                    <row>
                        <entry><methodname>getRawText()</methodname></entry>
                        <entry><type>String</type></entry>

                        <entry>
                            Gibt den originalen Text zurück der beim Objekt angegeben wurde
                        </entry>
                    </row>

                    <row>
                        <entry><methodname>getTextToDisplay()</methodname></entry>
                        <entry><type>String</type></entry>

                        <entry>
                            Gibt den Text zurück welche angezeigt wird, inklusive, wenn aktiviert,
                            den Wert der Checksumme
                        </entry>
                    </row>

                    <row>
                        <entry><methodname>getQuietZone()</methodname></entry>
                        <entry><type>Integer</type></entry>

                        <entry>
                            Gibt die Größe des Raumes an der vor und nach dem Barcode benötigt wird
                            und keine Zeichnung enthält
                        </entry>
                    </row>

                    <row>
                        <entry><methodname>getInstructions()</methodname></entry>
                        <entry><type>Array</type></entry>
                        <entry>Gibt die Zeichenanweisungen als Array zurück.</entry>
                    </row>

                    <row>
                        <entry><methodname>getHeight($recalculate = false)</methodname></entry>
                        <entry><type>Integer</type></entry>

                        <entry>
                            Gibt die Höhe des Barcodes berechnet nach einer möglichen Rotation
                            zurück
                        </entry>
                    </row>

                    <row>
                        <entry><methodname>getWidth($recalculate = false)</methodname></entry>
                        <entry><type>Integer</type></entry>

                        <entry>
                            Gibt den Wert des Barcodes berechnet nach einer möglichen Rotation
                            zurück
                        </entry>
                    </row>

                    <row>
                        <entry><methodname>getOffsetTop($recalculate = false)</methodname></entry>
                        <entry><type>Integer</type></entry>

                        <entry>
                            Gibt die oberste Position des Barcodes berechnet nach einer möglichen
                            Rotation zurück
                        </entry>
                    </row>

                    <row>
                        <entry><methodname>getOffsetLeft($recalculate = false)</methodname></entry>
                        <entry><type>Integer</type></entry>

                        <entry>
                            Gibt die linke Position des Barcodes berechnet nach einer möglichen
                            Rotation zurück
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </table>
    </sect2>

    <xi:include href="Zend_Barcode-Objects_Details.xml" />
</sect1>
