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 dersetConfig()
Methode übergeben wird. -
Über individuelle Setter für jeden Konfigurations Typ.
Beispiel 59. 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);
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:
Tabelle 14. 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 |
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
Tabelle 15. 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 |
Anbei findet man detailierte Informationen über alle Barcode Typen welche standardmäßig mit Zend Framework ausgeliefert werden.
Dieser Barcode ist ein spezieller Fall. Er wird intern verwendet um eine Exception
automatisch darzustellen wenn diese von der Zend_Barcode
Komponente gefangen wird.
-
Name: Code 25 (oder Code 2 of 5 oder Code 25 Industrial)
-
Erlaubte Zeichen: '0123456789'
-
Checksumme: Optional (Modulo 10)
-
Länge: Variabel
Es gibt keine speziellen Optionen für diesen Barcode.
Dieser Barcode erweitert Zend_Barcode_Object_Code25
(Code 2 of
5). Er hat die gleichen Details und Optionen und fügt folgendes hinzu:
-
Name: Code 2 of 5 Interleaved
-
Erlaubte Zeichen: '0123456789'
-
Checksumme: Optional (Modulo 10)
-
Länge: variabel (immer eine gerade Anzahl an Zeichen)
Vorhandene Optionen:
Tabelle 16. Optionen für Zend_Barcode_Object_Code25interleaved
Option | Datentyp | Standardwert | Beschreibung |
---|---|---|---|
withBearerBars | Boolean | FALSE |
Zeichnet eine dicke Linie am Beginn und Ende des Barcodes. |
Anmerkung
Wenn die Anzahl der Zeichen nicht gerade ist, wird
Zend_Barcode_Object_Code25interleaved
fehlende Nullen dem
Barcode Text automatisch voranstellen.
Dieser Barcode erweitert Zend_Barcode_Object_Ean5
(EAN 5) und hat die gleichen Details und Optionen, und fügt die
folgenden hinzu:
-
Name: EAN-2
-
Erlaubte Zeichen: '0123456789'
-
Checksumme: nur intern verwendet aber nicht dargestellt
-
Länge: 2 Zeichen
Es gibt keine speziellen Optionen für diesen Barcode.
Anmerkung
Wenn die Anzahl der Zeichen kleiner als 2 ist, wird
Zend_Barcode_Object_Ean2
fehlende Nullen dem Barcode
Text automatisch voranstellen.
Dieser Barcode erweitert Zend_Barcode_Object_Ean13
(EAN 13) und hat eigene Details und Optionen und fügt die folgenden
hinzu:
-
Name: EAN-5
-
Erlaubte Zeichen: '0123456789'
-
Checksumme: nur intern verwendet aber nicht dargestellt
-
Länge: 5 Zeichen
Es gibt keine speziellen Optionen für diesen Barcode.
Anmerkung
Wenn die Anzahl der Zeichen kleiner als 5 ist, wird
Zend_Barcode_Object_Ean5
fehlende Nullen dem Barcode
Text automatisch voranstellen.
Dieser Barcode erweitert Zend_Barcode_Object_Ean13
(EAN 13) und hat eigene Details und Optionen und fügt die folgenden
hinzu:
-
Name: EAN-8
-
Erlaubte Zeichen: '0123456789'
-
Checksumme: erforderlich (Modulo 10)
-
Länge: 8 Zeichen (inklusive Checksumme)
Es gibt keine speziellen Optionen für diesen Barcode.
Anmerkung
Wenn die Anzahl der Zeichen kleiner als 8 ist, wird
Zend_Barcode_Object_Ean8
fehlende Nullen dem Barcode
Text automatisch voranstellen.
-
Name: EAN-13
-
Erlaubte Zeichen: '0123456789'
-
Checksumme: erforderlich (Modulo 10)
-
Länge: 13 Zeichen (inklusive Checksumme)
Es gibt keine speziellen Optionen für diesen Barcode.
Anmerkung
Wenn die Anzahl der Zeichen kleiner als 13 ist, wird
Zend_Barcode_Object_Ean13
fehlende Nullen dem Barcode
Text automatisch voranstellen.
Die Option withQuietZones hat bei diesem Barcode keinen Effekt
-
Name: Code 39
-
Erlaubte Zeichen: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ -.$/+%'
-
Checksumme: Optional (Modulo 43)
-
Länge: Variabel
Anmerkung
Zend_Barcode_Object_Code39
fügt automatisch die Start und
Stop Zeichen ('*') hinzu.
Es gibt keine speziellen Optionen für diesen Barcode.
Dieser Barcode erweitert Zend_Barcode_Object_Code25interleaved
(Code 2 of 5 Interleaved), und enthält einige seiner Fähigkeiten; er hat auch selbst
einige spezielle.
-
Name: Identcode (Deutsche Post Identcode)
-
Erlaubte Zeichen: '0123456789'
-
Checksumme: zwingend (Modulo 10 aber unterschiedlich von Code25)
-
Länge: 12 Zeichen (inklusive Checksumme)
Es gibt keine speziellen Optionen für diesen Barcode.
Anmerkung
Wenn die Anzahl der Zeichen kleiner als 12 ist, wird
Zend_Barcode_Object_Identcode
fehlende Nullen dem Barcode
Text automatisch voranstellen.
Dieser Barcode erweitert Zend_Barcode_Object_Int25
(Code 2 of 5
Interleaved), und erweitert einige seiner Möglichkeiten; er hat auch selbst einige
spezielle.
-
Name: ITF-14
-
Erlaubte Zeichen: '0123456789'
-
Checksumme: zwingend (Modulo 10)
-
Länge: 14 Zeichen (inklusive Checksumme)
Es gibt keine speziellen Optionen für diesen Barcode.
Anmerkung
Wenn die Anzahl der Zeichen kleiner als 14 ist, wird
Zend_Barcode_Object_Itf14
fehlende Nullen dem Barcode
Text automatisch voranstellen.
Dieser Barcode erweitert Zend_Barcode_Object_Identcode
(Deutsche
Post Identcode), und enthält einige seiner Möglichkeiten; er hat auch einige eigene
Möglichkeit.
-
Name: Leitcode (Deutsche Post Leitcode)
-
Erlaubte Zeichen: '0123456789'
-
Checksumme: zwingend (Modulo 10 unterschiedlich zu Code25)
-
Länge: 14 Zeichen (inklusive der Checksumme)
Es gibt keine speziellen Optionen für diesen Barcode.
Anmerkung
Wenn die Anzahl der Zeichen kleiner als 14 ist, wird
Zend_Barcode_Object_Leitcode
fehlende Nullen dem Barcode
Text automatisch voranstellen.
-
Name: Planet (PostaL Alpha Numeric Encoding Technique)
-
Erlaubte Zeichen: '0123456789'
-
Checksumme: erforderlich (Modulo 10)
-
Länge: 12 oder 14 Zeichen (inklusive Checksumme)
Es gibt keine speziellen Optionen für diesen Barcode.
-
Name: Postnet (POSTal Numeric Encoding Technique)
-
Erlaubte Zeichen: '0123456789'
-
Checksumme: erforderlich (Modulo 10)
-
Länge: 6, 7, 10 oder 12 Zeichen (inklusive Checksumme)
Es gibt keine speziellen Optionen für diesen Barcode.
-
Name: Royal Mail oder RM4SCC (Royal Mail 4-State Customer Code)
-
Erlaubte Zeichen: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-
Checksumme: erforderlich
-
Länge: variabel
Es gibt keine speziellen Optionen für diesen Barcode.
Dieser Barcode erweitert Zend_Barcode_Object_Ean13
(EAN 13) und erweitert einige seiner Möglichkeiten; er hat auch
selbst einige.
-
Name: UPC-A (Universal Product Code)
-
Erlaubte Zeichen: '0123456789'
-
Checksumme: erforderlich (Modulo 10)
-
Länge: 12 Zeichen (inklusive Checksumme)
Es gibt keine speziellen Optionen für diesen Barcode.
Anmerkung
Wenn die Anzahl der Zeichen kleiner als 12 ist, wird
Zend_Barcode_Object_Upca
fehlende Nullen dem Barcode
Text automatisch voranstellen.
Die Option withQuietZones hat bei diesem Barcode keinen Effekt
Dieser Barcode erweitert Zend_Barcode_Object_Upca
(UPC-A), und verwendet einige seiner Fähigkeiten; er hat auch einige
eigene. Das erste Zeichen des zu kodierenden Textes ist das System (0 oder 1).
und enthält einige seiner Möglichkeiten; er hat auch einige eigene
Möglichkeit.
-
Name: UPC-E (Universal Product Code)
-
Erlaubte Zeichen: '0123456789'
-
Checksumme: erforderlich (Modulo 10)
-
Länge: 8 Zeichen (inklusive Checksumme)
Es gibt keine speziellen Optionen für diesen Barcode.
Anmerkung
Wenn die Anzahl der Zeichen kleiner als 8 ist, wird
Zend_Barcode_Object_Upce
fehlende Nullen dem Barcode
Text automatisch voranstellen.
Anmerkung
Wenn das erste Zeichen des zu kodierenden Textes nicht 0 oder 1 ist, ersetzt
Zend_Barcode_Object_Upce
dieses automatisch durch 0.
Die Option withQuietZones hat bei diesem Barcode keinen Effekt