Zend_Barcode
utiliza um método de fábrica para criar uma
instância de um renderizador que estende
Zend_Barcode_Renderer_RendererAbstract
. O método de fábrica
aceita cinco argumentos.
-
O nome do formato de código de barras (por exemplo, "code39") (obrigatório)
-
O nome do renderizador (por exemplo, "image") (obrigatório)
-
As opções do objeto código de barras (uma matriz ou objeto
Zend_Config
) (opcional) -
As opções do objeto renderizador (uma matriz ou objeto
Zend_Config
) (opcional) -
Booleano indicando se a renderização automática dos erros está ativada. Se ocorrer uma exceção, o objeto código de barras fornecido será substituído por uma representação de erro (opcional, padrão
TRUE
)
Exemplo 59. Recuperando um Renderizador com Zend_Barcode::factory()
Zend_Barcode::factory()
instancia objetos código de barras
e renderizadores no mesmo laço. Neste primeiro exemplo, vamos usar o tipo código de
barras Code39, juntamente com o renderizador
Image.
// Somente o texto a ser escrito é necessário $barcodeOptions = array('text' => 'ZEND-FRAMEWORK'); // Não há opções necessárias $rendererOptions = array(); $renderer = Zend_Barcode::factory( 'code39', 'image', $barcodeOptions, $rendererOptions );
Exemplo 60. Usando o Zend_Barcode::factory() com objetos Zend_Config
Você pode passar um objeto Zend_Config
para a fábrica, a fim
de criar os objetos necessários. O exemplo a seguir é funcionalmente equivalente
ao anterior.
// Usando apenas um objeto Zend_Config $config = new Zend_Config(array( 'barcode' => 'code39', 'barcodeParams' => array('text' => 'ZEND-FRAMEWORK'), 'renderer' => 'image', 'rendererParams' => array('imageType' => 'gif'), )); $renderer = Zend_Barcode::factory($config);
Quando você desenha o código de barras, você recuperar o recurso em
que o código de barras é desenhado. Para desenhar um código de barras, você pode chamar
o método draw()
do renderizador ou simplesmente usar o método
de proxy fornecido pelo Zend_Barcode
.
Exemplo 61. Desenhando um código de barras com o objeto renderizador
// Somente o texto a ser escrito é necessário $barcodeOptions = array('text' => 'ZEND-FRAMEWORK'); // Não há opções necessárias $rendererOptions = array(); // Desenha o código de barras em uma nova imagem $imageResource = Zend_Barcode::factory( 'code39', 'image', $barcodeOptions, $rendererOptions )->draw();
Exemplo 62. Desenhando um código de barras com Zend_Barcode::draw()
// Somente o texto a ser escrito é necessário $barcodeOptions = array('text' => 'ZEND-FRAMEWORK'); // Não há opções necessárias $rendererOptions = array(); // Desenha o código de barras em uma nova imagem $imageResource = Zend_Barcode::draw( 'code39', 'image', $barcodeOptions, $rendererOptions );
Quando você renderiza um código de barras, você desenha o código de barras, envia os
cabeçalhos e envia também o recurso (à um navegador, por exemplo). Para renderizar um
código de barras, você pode chamar o método render()
do
renderizador ou simplesmente usar o método de proxy fornecido pelo
Zend_Barcode
.
Exemplo 63. Renderizando um código de barras com o objeto renderizador
// Somente o texto a ser escrito é necessário $barcodeOptions = array('text' => 'ZEND-FRAMEWORK'); // Não há opções necessárias $rendererOptions = array(); // Desenha o código de barras em uma nova imagem, // enviar os cabeçalhos e a imagem Zend_Barcode::factory( 'code39', 'image', $barcodeOptions, $rendererOptions )->render();
Isso gerará este código de barras:
Exemplo 64. Renderizando um código de barras com Zend_Barcode::render()
// Somente o texto a ser escrito é necessário $barcodeOptions = array('text' => 'ZEND-FRAMEWORK'); // Não há opções necessárias $rendererOptions = array(); // Desenha o código de barras em uma nova imagem, // enviar os cabeçalhos e a imagem Zend_Barcode::render( 'code39', 'image', $barcodeOptions, $rendererOptions );
Isso gerará o mesmo código de barras do exemplo anterior.