Zend_Barcode uses a factory method to create an instance of a
renderer that extends Zend_Barcode_Renderer_RendererAbstract. The
factory method accepts five arguments.
-
The name of the barcode format (e.g., "code39") (required)
-
The name of the renderer (e.g., "image") (required)
-
Options to pass to the barcode object (an array or
Zend_Configobject) (optional) -
Options to pass to the renderer object (an array or
Zend_Configobject) (optional) -
Boolean to indicate whether or not to automatically render errors. If an exception occurs, the provided barcode object will be replaced with an Error representation (optional default
TRUE)
Przykład 59. Getting a Renderer with Zend_Barcode::factory()
Zend_Barcode::factory() instantiates barcode objects and
renderers and ties them together. In this first example, we will use the
Code39 barcode type together with the
Image renderer.
// Only the text to draw is required
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');
// No required options
$rendererOptions = array();
$renderer = Zend_Barcode::factory(
'code39', 'image', $barcodeOptions, $rendererOptions
);
Przykład 60. Using Zend_Barcode::factory() with Zend_Config objects
You may pass a Zend_Config object to the factory in order to
create the necessary objects. The following example is functionally equivalent to
the previous.
// Using only one Zend_Config object
$config = new Zend_Config(array(
'barcode' => 'code39',
'barcodeParams' => array('text' => 'ZEND-FRAMEWORK'),
'renderer' => 'image',
'rendererParams' => array('imageType' => 'gif'),
));
$renderer = Zend_Barcode::factory($config);
When you draw the barcode, you retrieve the resource in which the
barcode is drawn. To draw a barcode, you can call the draw() of
the renderer, or simply use the proxy method provided by
Zend_Barcode.
Przykład 61. Drawing a barcode with the renderer object
// Only the text to draw is required
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');
// No required options
$rendererOptions = array();
// Draw the barcode in a new image,
$imageResource = Zend_Barcode::factory(
'code39', 'image', $barcodeOptions, $rendererOptions
)->draw();
Przykład 62. Drawing a barcode with Zend_Barcode::draw()
// Only the text to draw is required
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');
// No required options
$rendererOptions = array();
// Draw the barcode in a new image,
$imageResource = Zend_Barcode::draw(
'code39', 'image', $barcodeOptions, $rendererOptions
);
When you render a barcode, you draw the barcode, you send the headers and you send the
resource (e.g. to a browser). To render a barcode, you can call the
render() method of the renderer or simply use the proxy method
provided by Zend_Barcode.
Przykład 63. Renderering a barcode with the renderer object
// Only the text to draw is required
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');
// No required options
$rendererOptions = array();
// Draw the barcode in a new image,
// send the headers and the image
Zend_Barcode::factory(
'code39', 'image', $barcodeOptions, $rendererOptions
)->render();
This will generate this barcode:
Przykład 64. Renderering a barcode with Zend_Barcode::render()
// Only the text to draw is required
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');
// No required options
$rendererOptions = array();
// Draw the barcode in a new image,
// send the headers and the image
Zend_Barcode::render(
'code39', 'image', $barcodeOptions, $rendererOptions
);
This will generate the same barcode as the previous example.