Os objetos código de barras te permitem gerar códigos de barras independentemente do suporte de renderização. Após a geração, você pode recuperar o código de barras como uma matriz de instruções de desenho que você pode fornecer a um renderizador.
Os objetos têm um grande número de opções. A maioria deles são comuns a todos os objetos. Essas opções podem ser definidas em quatro formas:
- 
            
Como uma matriz ou um objeto
Zend_Configpassado ao construtor. - 
            
Como uma matriz passada ao método
setOptions(). - 
            
Como um objeto
Zend_Configpassado ao métodosetConfig(). - 
            
Através de métodos de acesso individuais para cada tipo de configuração.
 
Exemplo 65. Diferentes maneiras de parametrizar um objeto código de barras
$options = array('text' => 'ZEND-FRAMEWORK', 'barHeight' => 40);
// Caso 1: construtor
$barcode = new Zend_Barcode_Object_Code39($options);
// Caso 2: setOptions()
$barcode = new Zend_Barcode_Object_Code39();
$barcode->setOptions($options);
// Caso 3: setConfig()
$config  = new Zend_Config($options);
$barcode = new Zend_Barcode_Object_Code39();
$barcode->setConfig($config);
// Caso 4: métodos de acesso individuais
$barcode = new Zend_Barcode_Object_Code39();
$barcode->setText('ZEND-FRAMEWORK')
        ->setBarHeight(40);
    Na lista seguinte, os valores não têm unidades; usaremos o termo "unidade". Por exemplo, o valor padrão da "barra fina" é "1 unidade". As unidades reais dependem do suporte de renderização (veja a documentação dos renderizadores para mais informações). Os métodos de acesso são nomeados mudando a letra inicial da opção para maiúscula e colocando o prefixo "set" (por exemplo "barHeight" se torna "setBarHeight"). Todas as opções têm um método de leitura correspondente com prefixo "get" (por exemplo "getBarHeight"). As opções disponíveis são:
Tabela 14. Opções Comuns
| Opção | Tipo de Dado | Valor Padrão | Descrição | 
|---|---|---|---|
| barcodeNamespace | String | Zend_Barcode_Object | 
Namespace do código de barras; por exemplo, se você precisar estender os objetos incorporados | 
| barHeight | Integer | 50 | Altura das barras | 
| barThickWidth | Integer | 3 | Largura da barra grossa | 
| barThinWidth | Integer | 1 | Largura da barra fina | 
| factor | Integer | 1 | Fator com o qual a largura das barras e o tamanho das fontes são multiplicados | 
| foreColor | Integer | 0 (preto) | Cor da barra e do texto. Poderia ser fornecido como um inteiro ou como um valor em HTML (por exemplo "#333333") | 
| backgroundColor | Integer ou String | 16777125 (branco) | Cor do fundo. Poderia ser fornecido como um inteiro ou como um valor em HTML (por exemplo "#333333") | 
| reverseColor | Boolean | FALSE | 
Permite-lhe trocar a cor da barra e do fundo | 
| orientation | Integer | 0 | Orientação do código de barras | 
| font | String ou Integer | NULL | 
Caminho para uma fonte TTF ou um número entre 1 e 5, caso esteja utilizando a geração de imagem com o GD (fontes internas) | 
| fontSize | Integer | 10 | Tamanho da fonte (não aplicável à fontes numéricas) | 
| withBorder | Boolean | FALSE | 
Desenhar uma borda em torno do código de barras e dos espaços vazios | 
| withQuietZones | Boolean | TRUE | 
Deixar um espaço vazio antes e depois do código de barras | 
| drawText | Boolean | TRUE | 
Define se o texto será mostrado abaixo do código de barras | 
| stretchText | Boolean | FALSE | 
Especifica se o texto será esticado ao longo do código de barras | 
| withChecksum | Boolean | FALSE | 
Indica se o checksum será adicionado automaticamente ao código de barras | 
| withChecksumInText | Boolean | FALSE | 
Indica se o checksum será exibido na representação textual | 
| text | String | NULL | 
O texto que será reproduzido como um código de barras | 
                Você pode definir uma fonte comum para todos os seus objetos usando o método
                estático Zend_Barcode_Object::setBarcodeFont(). Este valor
                pode ser substituído por objetos individuais usando o método
                setFont().
            
// Em seu arquivo bootstrap:
Zend_Barcode_Object::setBarcodeFont('my_font.ttf');
// Depois em seu código:
Zend_Barcode::render(
    'code39',
    'pdf',
    array('text' => 'ZEND-FRAMEWORK')
); // utilizará 'my_font.ttf'
// or:
Zend_Barcode::render(
    'code39',
    'image',
    array(
        'text' => 'ZEND-FRAMEWORK',
        'font' => 3
    )
); // utilizará a terceira fonte interna do GD
        Tabela 15. Métodos de Leitura Comuns
| Método de Leitura | Tipo de Dado | Descrição | 
|---|---|---|
getType() | 
String | 
                            Retorna o nome da classe de código de barras sem o namespace
                            (por exemplo, Zend_Barcode_Object_Code39 retorna
                            simplesmente "code39")
                         | 
getRawText() | 
String | Retorna o texto original fornecido pelo objeto | 
getTextToDisplay() | 
String | Retorna o texto a ser exibido, incluindo, se ativado, o valor do checksum | 
getQuietZone() | 
Integer | Retornar a quantidade de espaço necessário antes e depois do código de barras sem nenhum desenho | 
getInstructions() | 
Array | Retorna as instruções de desenho como uma matriz | 
getHeight($recalculate = false) | 
Integer | Retorna a altura do código de barras calculado após uma possível rotação | 
getWidth($recalculate = false) | 
Integer | Retorna a largura do código de barras calculado após uma possível rotação | 
getOffsetTop($recalculate = false) | 
Integer | Retorna a posição do topo do código de barras calculado após uma possível rotação | 
getOffsetLeft($recalculate = false) | 
Integer | Retorna a posição da esquerda do código de barras calculado após uma possível rotação | 
Você encontrará abaixo informações detalhadas sobre todos os tipos de códigos de barras embarcados por padrão com o Zend Framework.
            
        
            Este código de barras é um caso especial. É utilizado internamente para automaticamente
            renderizar uma exceção capturada pelo componente Zend_Barcode.
        
            
        
- 
                
Nome: Code 128
 - 
                
Caracteres permitidos: o conjunto completo dos caracteres ASCII
 - 
                
Checksum: opcional (módulo 103)
 - 
                
Comprimento: variável
 
Não existem opções específicas para este código de barras.
            
        
- 
                
Nome: Código 25 (ou Código 2 de 5 ou Código 25 Industrial)
 - 
                
Caracteres permitidos: '0123456789'
 - 
                
Checksum: opcional (módulo 10)
 - 
                
Comprimento: variável
 
Não existem opções específicas para este código de barras.
            
        
            Este código de barras estende Zend_Barcode_Object_Code25
            (Código 2 de 5), e tem os mesmos detalhes e opções, e acrescenta o seguinte:
        
- 
                
Nome: Código 2 de 5 Intercalado
 - 
                
Caracteres permitidos: '0123456789'
 - 
                
Checksum: opcional (módulo 10)
 - 
                
Comprimento: variável (sempre o mesmo número de caracteres)
 
As opções disponíveis incluem:
Tabela 16. Opções do Zend_Barcode_Object_Code25interleaved
| Opção | Tipo de Dado | Valor Padrão | Descrição | 
|---|---|---|---|
| withBearerBars | Boolean | FALSE | 
Desenha uma barra grossa em cima e em baixo do código de barras. | 
Nota
                Se o número de caracteres não for mesmo, o
                Zend_Barcode_Object_Code25interleaved adicionará
                automaticamente na frente do texto do código de barras os zeros faltantes.
            
            
        
            Este código de barras estende Zend_Barcode_Object_Ean5
            (EAN 5), e tem os mesmos detalhes e opções, e acrescenta o seguinte:
        
- 
                
Nome: EAN-2
 - 
                
Caracteres permitidos: '0123456789'
 - 
                
Checksum: utilizado apenas internamente, mas não exibido
 - 
                
Comprimento: 2 caracteres
 
Não existem opções específicas para este código de barras.
Nota
                Se o número de caracteres for menor que 2, o
                Zend_Barcode_Object_Ean2 adicionará
                automaticamente na frente do texto do código de barras os zeros faltantes.
            
            
        
            Este código de barras estende Zend_Barcode_Object_Ean13
            (EAN 13), e tem os mesmos detalhes e opções, e acrescenta o seguinte:
        
- 
                
Nome: EAN-5
 - 
                
Caracteres permitidos: '0123456789'
 - 
                
Checksum: utilizado apenas internamente, mas não exibido
 - 
                
Comprimento: 5 caracteres
 
Não existem opções específicas para este código de barras.
Nota
                Se o número de caracteres for menor que 5, o
                Zend_Barcode_Object_Ean5 adicionará
                automaticamente na frente do texto do código de barras os zeros faltantes.
            
            
        
            Este código de barras estende Zend_Barcode_Object_Ean13
            (EAN 13), e tem os mesmos detalhes e opções, e acrescenta o seguinte:
        
- 
                
Nome: EAN-8
 - 
                
Caracteres permitidos: '0123456789'
 - 
                
Checksum: obrigatório (módulo 10)
 - 
                
Comprimento: 8 caracteres (incluindo o checksum)
 
Não existem opções específicas para este código de barras.
Nota
                Se o número de caracteres for menor que 8, o
                Zend_Barcode_Object_Ean8 adicionará
                automaticamente na frente do texto do código de barras os zeros faltantes.
            
            
        
- 
                
Nome: EAN-13
 - 
                
Caracteres permitidos: '0123456789'
 - 
                
Checksum: obrigatório (módulo 10)
 - 
                
Comprimento: 13 caracteres (incluindo o checksum)
 
Não existem opções específicas para este código de barras.
Nota
                Se o número de caracteres for menor que 13, o
                Zend_Barcode_Object_Ean13 adicionará
                automaticamente na frente do texto do código de barras os zeros faltantes.
            
A opção withQuietZones não afeta este código de barras.
            
        
- 
                
Nome: Código 39
 - 
                
Caracteres permitidos: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ -.$/+%'
 - 
                
Checksum: opcional (módulo 43)
 - 
                
Comprimento: variável
 
Nota
                Zend_Barcode_Object_Code39 adicionará automaticamente no
                início e no fim o caractere ('*').
            
Não existem opções específicas para este código de barras.
            
        
            Este código de barras estende
            Zend_Barcode_Object_Code25interleaved
            (Código 2 de 5 Intercalado), e herda algumas das suas capacidades, mas possui também
            suas próprias características.
        
- 
                
Nome: Identcode (Deutsche Post Identcode)
 - 
                
Caracteres permitidos: '0123456789'
 - 
                
Checksum: obrigatório (módulo 10 diferente do Código 25)
 - 
                
Comprimento: 12 caracteres (incluindo o checksum)
 
Não existem opções específicas para este código de barras.
Nota
                Se o número de caracteres for menor que 12, o
                Zend_Barcode_Object_Identcode adicionará
                automaticamente na frente do texto do código de barras os zeros faltantes.
            
            
        
            Este código de barras estende
            Zend_Barcode_Object_Code25interleaved
            (Código 2 de 5 Intercalado), e herda algumas das suas capacidades, mas possui também
            suas próprias características.
        
- 
                
Nome: ITF-14
 - 
                
Caracteres permitidos: '0123456789'
 - 
                
Checksum: obrigatório (módulo 10)
 - 
                
Comprimento: 14 caracteres (incluindo o checksum)
 
Não existem opções específicas para este código de barras.
Nota
                Se o número de caracteres for menor que 14, o
                Zend_Barcode_Object_Itf14 adicionará
                automaticamente na frente do texto do código de barras os zeros faltantes.
            
            
        
            Este código de barras estende Zend_Barcode_Object_Identcode
            (Deutsche Post Identcode), e herda algumas das suas capacidades, mas possui também
            suas próprias características.
        
- 
                
Nome: Leitcode (Deutsche Post Leitcode)
 - 
                
Caracteres permitidos: '0123456789'
 - 
                
Checksum: obrigatório (módulo 10 diferente do Código 25)
 - 
                
Comprimento: 14 caracteres (incluindo o checksum)
 
Não existem opções específicas para este código de barras.
Nota
                Se o número de caracteres for menor que 14, o
                Zend_Barcode_Object_Leitcode adicionará
                automaticamente na frente do texto do código de barras os zeros faltantes.
            
            
        
- 
                
Nome: Planet (PostaL Alpha Numeric Encoding Technique)
 - 
                
Caracteres permitidos: '0123456789'
 - 
                
Checksum: obrigatório (módulo 10)
 - 
                
Comprimento: 12 ou 14 caracteres (incluindo o checksum)
 
Não existem opções específicas para este código de barras.
            
        
- 
                
Nome: Postnet (POSTal Numeric Encoding Technique)
 - 
                
Caracteres permitidos: '0123456789'
 - 
                
Checksum: obrigatório (módulo 10)
 - 
                
Comprimento: 6, 7, 10 ou 12 caracteres (incluindo o checksum)
 
Não existem opções específicas para este código de barras.
            
        
- 
                
Nome: Royal Mail ou RM4SCC (Royal Mail 4-State Customer Code)
 - 
                
Caracteres permitidos: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 - 
                
Checksum: obrigatório
 - 
                
Comprimento: variável
 
Não existem opções específicas para este código de barras.
            
        
            Este código de barras estende Zend_Barcode_Object_Ean13
            (EAN-13), e herda algumas das suas capacidades, mas possui também
            suas próprias características.
        
- 
                
Nome: UPC-A (Universal Product Code)
 - 
                
Caracteres permitidos: '0123456789'
 - 
                
Checksum: obrigatório (módulo 10)
 - 
                
Comprimento: 12 caracteres (incluindo o checksum)
 
Não existem opções específicas para este código de barras.
Nota
                Se o número de caracteres for menor que 12, o
                Zend_Barcode_Object_Upca adicionará
                automaticamente na frente do texto do código de barras os zeros faltantes.
            
A opção withQuietZones não afeta este código de barras.
            
        
            Este código de barras estende Zend_Barcode_Object_Upca
            (UPC-A), e herda algumas das suas capacidades, mas possui também
            suas próprias características. O primeiro caractere do texto a ser codificado
            é o sistema (0 ou 1).
        
- 
                
Nome: UPC-E (Universal Product Code)
 - 
                
Caracteres permitidos: '0123456789'
 - 
                
Checksum: obrigatório (módulo 10)
 - 
                
Comprimento: 8 caracteres (incluindo o checksum)
 
Não existem opções específicas para este código de barras.
Nota
                Se o número de caracteres for menor que 8, o
                Zend_Barcode_Object_Upce adicionará
                automaticamente na frente do texto do código de barras os zeros faltantes.
            
Nota
                Se o primeiro caractere do texto a ser codificado não for 0 ou 1, o
                Zend_Barcode_Object_Upce irá automaticamente
                substituí-lo por 0.
            
A opção withQuietZones não afeta este código de barras.