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_Config
passado ao construtor. -
Como uma matriz passada ao método
setOptions()
. -
Como um objeto
Zend_Config
passado 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.