Zend_Barcode utiliza un método factory para crear una instancia de un
renderizador (renderer) que extiende Zend_Barcode_Renderer_RendererAbstract. El
método factory acepta cinco argumentos.
El nombre del formato de código de barras (por ejemplo, "code39") (obligatorio)
El nombre del renderizador (por ejemplo, "image") (obligatorio)
Opciones para pasar al objeto del código de barras (un array o un objeto
Zend_Config) (opcional)Opciones para pasar al objeto renderizador (un array o un objeto
Zend_Config) (opcional)Valor booleano que indica si se deben renderizar automáticamente los errores o no. Si ocurre una excepción, el objeto de código de barras proporcionado se sustituirá por una representación de error (opcional, valor por defecto
TRUE)
Ejemplo 16.1. Obtener un renderizador con Zend_Barcode::factory()
Zend_Barcode::factory() instancia objetos de código de barras y
renderizadores y los enlaza entre sí. En este primer ejemplo, usaremos el
tipo de código de barras Code39 junto con el
renderizador Image.
// 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
);
Ejemplo 16.2. Uso de Zend_Barcode::factory() con objetos Zend_Config
Puede pasar un objeto Zend_Config al factory para
crear los objetos necesarios. El siguiente ejemplo es funcionalmente equivalente al
anterior.
// 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);
Cuando dibuja el código de barras, recupera el recurso en el que se
dibuja el código de barras. Para dibujar un código de barras, puede llamar a draw() del
renderizador, o simplemente usar el método proxy proporcionado por
Zend_Barcode.
Ejemplo 16.3. Dibujar un código de barras con el objeto renderizador
// 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();
Ejemplo 16.4. Dibujar un código de barras con 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
);
Cuando renderiza un código de barras, dibuja el código de barras, envía las cabeceras y envía el
recurso (por ejemplo, a un navegador). Para renderizar un código de barras, puede llamar al método
render() del renderizador o simplemente usar el método proxy
proporcionado por Zend_Barcode.
Ejemplo 16.5. Renderizar un código de barras con el objeto renderizador
// 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();
Esto generará este código de barras:
Ejemplo 16.6. Renderizar un código de barras con 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
);
Esto generará el mismo código de barras que el ejemplo anterior.