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.