# Zend_Barcode Objekte

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.

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:

- Als Array oder Zend_Config Objekt welches dem Constructor übergeben wird.

- Als Array das der setOptions() Methode übergeben wird.

- Als Zend_Config Objekt welches der setConfig() Methode übergeben wird.

- Über individuelle Setter für jeden Konfigurations Typ.

Unterschiedliche Wege ein Barcode Objekt zu parametrisieren

    $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);

## Gemeinsame Optionen

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 die Renderer Dokumentation 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:

Gemeinsame Optionen

Option | Daten Typ | Standardwert | Beschreibung
--- | --- | --- | ---
barcodeNamespace | String | Zend_Barcode_Object | Namespace des Renderers; zum Beispiel wenn man den Renderer erweitern muss
barHeight | Integer | 50 | Höhe der Balken
barThickWidth | Integer | 3 | Breite des dicken Balken
barThinWidth | Integer | 1 | Breite des dünnen Balkens
factor | Integer | 1 | Faktor mit dem die Balkenbreiten und Schriftgrößen multipliziert werden
foreColor | Integer | 0 (schwarz) | Farbe des Balken und des Textes. Könnte als Integer oder als HTML Wert übergeben werden (z.B. "#333333")
backgroundColor | Integer oder String | 16777125 (white) | Farbe des Hintergrundes. Könnte als Integer oder als HTML Wert übergeben werden (z.B. "#333333")
reverseColor | Boolean | `FALSE` | Erlaubt die Änderung der Farbe des Balken und des Hintergrunds
orientation | Integer | 0 | Orientierung des Barcodes
font | String oder Integer | `NULL` | Pfad zu einer TTF Schriftart oder eine Zahl zwischen 1 und 5 wenn die Bilderstellung mit GD verwendet wird (interne Schriftarten)
fontSize | Integer | 10 | Größe der Schriftart (nicht anwendbar bei nummerischen Schriftarten)
withBorder | Boolean | `FALSE` | Zeichnet einen Rahmen um den Barcode und die Randzonen
withQuietZones | Boolean | `TRUE` | Lässt die Leerzone vor und nach dem Barcode weg
drawText | Boolean | `TRUE` | Setzt ob der Text unter dem Barcode angezeigt wird
stretchText | Boolean | `FALSE` | Spezifiziert ob der Text entlang des kompletten Barcodes gestreckt werden soll
withChecksum | Boolean | `FALSE` | Zeigt ob die Checksumme dem Barcode automatisch hinzugefügt wird oder nicht
withChecksumInText | Boolean | `FALSE` | Zeigt ob die Checksumme in der textuellen Repräsentation angezeigt wird oder nicht
text | String | `NULL` | Der Text der repräsentiert wird, als Barcode

### Spezieller Fall der statischen setBarcodeFont()

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

    // 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

## Gemeinsame zusätzliche Getter

Gemeinsame Getter

Getter | Daten Typ | Beschreibung
--- | --- | ---
getType() | String | Gibt den Namen der Barcode Klasse ohne den Namespace zurück (z.B. gibt Zend_Barcode_Object_Code39 einfach "code39" zurück)
getRawText() | String | Gibt den originalen Text zurück der beim Objekt angegeben wurde
getTextToDisplay() | String | Gibt den Text zurück welche angezeigt wird, inklusive, wenn aktiviert, den Wert der Checksumme
getQuietZone() | Integer | Gibt die Größe des Raumes an der vor und nach dem Barcode benötigt wird und keine Zeichnung enthält
getInstructions() | Array | Gibt die Zeichenanweisungen als Array zurück.
getHeight($recalculate = false) | Integer | Gibt die Höhe des Barcodes berechnet nach einer möglichen Rotation zurück
getWidth($recalculate = false) | Integer | Gibt den Wert des Barcodes berechnet nach einer möglichen Rotation zurück
getOffsetTop($recalculate = false) | Integer | Gibt die oberste Position des Barcodes berechnet nach einer möglichen Rotation zurück
getOffsetLeft($recalculate = false) | Integer | Gibt die linke Position des Barcodes berechnet nach einer möglichen Rotation zurück