Objetos Zend_Barcode

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étodo setConfig().

  • 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);

Opções Comuns

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

O caso particular do setBarcodeFont() estático

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

Métodos de Leitura Comuns Adicionais

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

Descrição dos códigos de barras embarcados

Você encontrará abaixo informações detalhadas sobre todos os tipos de códigos de barras embarcados por padrão com o Zend Framework.

Zend_Barcode_Object_Error

Este código de barras é um caso especial. É utilizado internamente para automaticamente renderizar uma exceção capturada pelo componente Zend_Barcode.

Zend_Barcode_Object_Code128

  • 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.

Zend_Barcode_Object_Code25

  • 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.

Zend_Barcode_Object_Code25interleaved

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.

Zend_Barcode_Object_Ean2

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.

Zend_Barcode_Object_Ean5

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.

Zend_Barcode_Object_Ean8

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.

Zend_Barcode_Object_Ean13

  • 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.

Zend_Barcode_Object_Code39

  • 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.

Zend_Barcode_Object_Identcode

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.

Zend_Barcode_Object_Itf14

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.

Zend_Barcode_Object_Leitcode

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.

Zend_Barcode_Object_Planet

  • 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.

Zend_Barcode_Object_Postnet

  • 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.

Zend_Barcode_Object_Royalmail

  • 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.

Zend_Barcode_Object_Upca

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.

Zend_Barcode_Object_Upce

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.