Guten Abend,
evtl. könnt ihr mir ja helfen! Ich möchte via Zend Framework einen Barcode in diverse Formate ausgeben lassen können. Es funktioniert auch
- als Bild (PNG, JPG, GIF)
- als PDF
Nur leider finde ich nach 2 Stunden Google-Plackerei nichts über die Möglichkeit SVG- und EPS-Dateien mit Barcode zu erstellen!
Hier der Code:
PHP-Code:
<?php
// Text holen
$barcodeOptions = array('text' => $this->string);
// Schriftart festlegen
Zend_Barcode::setBarcodeFont(dirname(__FILE__) . '\_fonts\irgendEineSchrift.ttf');
switch($this->type)
{
// PNG
case 'png':
// Bildformat festlegen
$rendererOptions = array('imageType' => 'png');
// Barcode nach Bild zeichnen
Zend_Barcode::factory('Code39', 'image', $barcodeOptions, $rendererOptions)->render();
break;
// JPG
case 'jpg':
// Bildformat festlegen
$rendererOptions = array('imageType' => 'jpg');
// Barcode nach Bild zeichnen
Zend_Barcode::factory('Code39', 'image', $barcodeOptions, $rendererOptions)->render();
break;
// GIF
case 'gif':
// Bildformat festlegen
$rendererOptions = array('imageType' => 'gif');
// Barcode nach Bild zeichnen
Zend_Barcode::factory('Code39', 'image', $barcodeOptions, $rendererOptions)->render();
break;
// PDF
case 'pdf':
// Dateipfad und Name Definieren (generate/cache/[TIMESTAMP].pdf)
$pdfFileName = 'cache/' . time() . '.pdf';
// Neues PDF-Dokument initialisieren
$pdfWithBarcode = new Zend_Pdf();
// Position des Barcodes festlegen
$rendererOptions = array('horizontalPosition' => 'center', 'verticalPosition' => 'middle');
// Barcode nach PDF zeichnen
$pdfWithBarcode = Zend_Barcode::factory('code39', 'pdf', $barcodeOptions, $rendererOptions)->setResource($pdfWithBarcode)->draw();
// PDF speichern
$pdfWithBarcode->save($pdfFileName);
// Header-Informationen senden (Download)
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="barcode-' . time() . '.pdf"');
readfile($pdfFileName);
// Anzeige des Layouts verhindern (nötig?)
$this->view->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
exit;
break;
// SVG
case 'svg':
/* --- TODO --- */
break;
// EPS
case 'eps':
/* --- TODO --- */
break;
// wenn kein gültiger Dateityp angegeben
default:
// Bildformat festlegen
$rendererOptions = array('imageType' => 'png');
// Barcode nach Bild zeichnen
Zend_Barcode::factory('Code39', 'image', $barcodeOptions, $rendererOptions)->render();
break;
}
?>
Wäre super wenn ihr mir dabei helfen könntet!
Grüße,
d0t