Zend_Barcode
verwendet eine Factory Methode um die Instanz eines
Renderers zu erstellen der Zend_Barcode_Renderer_RendererAbstract
erweitert. Die Factory Methode akzeptiert fünf Argumente.
-
Der Name des Barcode Formats (z.B., "code39") (benötigt)
-
Der Name des Renderers (z.B., "image") (benötigt)
-
Optionen die an das Barcode Objekt übergeben werden (ein Array oder
Zend_Config
Objekt) (optional) -
Optionen die an das Renderer Objekt übergeben werden (ein Array oder
Zend_Config
Object) (optional) -
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
TRUE
)
Beispiel 53. Einen Renderer mit Zend_Barcode::factory() erhalten
Zend_Barcode::factory()
instanziert Barcode Objekte und
Renderer und verbindet diese miteinander. In diesem ersten Beispiel verwenden wir
den Code39 Barcode Typ zusammen mit dem
Image Renderer.
// 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 );
Beispiel 54. Zend_Barcode::factory() mit Zend_Config Objekten verwenden
Man kann ein Zend_Config
Objekt an die Factory übergeben um
die notwendigen Objekte zu erstellen. Das folgende Beispiel ist funktionell
identisch mit dem vorherigen.
// 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);
Wenn der Barcode gezeichnet wird, empfängt man die Ressource in
welcher der Barcode gezeichnet wird. Um einen Barcode zu zeichnen kann man die
draw()
Methode des Renderers aufrufen, oder einfach die von
Zend_Barcode
angebotene Proxy Methode verwenden.
Beispiel 55. Einen Barcode mit dem Renderer Objekt zeichnen
// 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();
Beispiel 56. Einen Barcode mit Zend_Barcode::draw() zeichnen
// 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 );
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 render()
Methode des Renderers aufrufen, oder einfach
die Proxy Methode verwenden die von Zend_Barcode
angeboten wird.
Beispiel 57. Einen Barcode mit dem Renderer Objekt darstellen
// 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();
Das wird diesen Barcode erstellen:
Beispiel 58. Einen Barcode mit Zend_Barcode::render() darstellen
// 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 );
Das wird den selben Barcode erzeugen wie im vorherigen Beispiel.