TigerZF
🌐Español

16.3. Objetos Zend_Barcode

Los objetos de código de barras permiten generar códigos de barras independientemente del soporte de renderizado. Después de la generación, puede recuperar el código de barras como un array de instrucciones de dibujo que puede proporcionar a un renderizador.

Los objetos tienen un gran número de opciones. La mayoría de ellas son comunes a todos los objetos. Estas opciones se pueden establecer de cuatro formas:

  • Como un array o un objeto Zend_Config pasado al constructor.

  • Como un array pasado al método setOptions().

  • Como un objeto Zend_Config pasado al método setConfig().

  • Mediante métodos de establecimiento (setters) individuales para cada tipo de configuración.

Ejemplo 16.7. Diferentes formas de parametrizar un objeto de código de barras

$options = array('text' => 'ZEND-FRAMEWORK', 'barHeight' => 40);

// Case 1: constructor
$barcode = new Zend_Barcode_Object_Code39($options);

// Case 2: setOptions()
$barcode = new Zend_Barcode_Object_Code39();
$barcode->setOptions($options);

// Case 3: setConfig()
$config  = new Zend_Config($options);
$barcode = new Zend_Barcode_Object_Code39();
$barcode->setConfig($config);

// Case 4: individual setters
$barcode = new Zend_Barcode_Object_Code39();
$barcode->setText('ZEND-FRAMEWORK')
        ->setBarHeight(40);

16.3.1. Opciones comunes

En la siguiente lista, los valores no tienen unidades; usaremos el término "unidad". Por ejemplo, el valor por defecto de la "barra fina" es "1 unidad". Las unidades reales dependen del soporte de renderizado (consulte la documentación de los renderizadores para más información). Los setters se nombran poniendo en mayúscula la letra inicial de la opción y anteponiendo el nombre con "set" (por ejemplo, "barHeight" se convierte en "setBarHeight"). Todas las opciones tienen un getter correspondiente prefijado con "get" (por ejemplo, "getBarHeight"). Las opciones disponibles son:

Tabla 16.1. Opciones comunes

Opción Tipo de dato Valor por defecto Descripción
barcodeNamespace String Zend_Barcode_Object Espacio de nombres del código de barras; por ejemplo, si necesita extender los objetos incrustados
barHeight Integer 50 Altura de las barras
barThickWidth Integer 3 Ancho de la barra gruesa
barThinWidth Integer 1 Ancho de la barra fina
factor Integer, Float, String o Boolean 1 Factor por el cual multiplicar los anchos de las barras y los tamaños de fuente
foreColor Integer 0 (negro) Color de la barra y del texto. Se puede proporcionar como un entero o como un valor HTML (por ejemplo, "#333333")
backgroundColor Integer o String 16777125 (blanco) Color del fondo. Se puede proporcionar como un entero o como un valor HTML (por ejemplo, "#333333")
reverseColor Boolean FALSE Permite intercambiar el color de la barra y del fondo
orientation Integer, Float, String o Boolean 0 Orientación del código de barras
font String o Integer NULL Ruta a una fuente TTF o un número entre 1 y 5 si se usa generación de imágenes con GD (fuentes internas)
fontSize Integer 10 Tamaño de la fuente (no aplicable con fuentes numéricas)
withBorder Boolean FALSE Dibuja un borde alrededor del código de barras y de las zonas de silencio
withQuietZones Boolean TRUE Deja una zona de silencio antes y después del código de barras
drawText Boolean TRUE Establece si el texto se muestra debajo del código de barras
stretchText Boolean FALSE Especifica si el texto se estira a lo largo de todo el código de barras
withChecksum Boolean FALSE Indica si el checksum se añade o no automáticamente al código de barras
withChecksumInText Boolean FALSE Indica si el checksum se muestra o no en la representación textual
text String NULL El texto a representar como código de barras

16.3.1.1. Caso particular del método estático setBarcodeFont()

Puede establecer una fuente común para todos sus objetos utilizando el método estático Zend_Barcode_Object::setBarcodeFont(). Este valor siempre puede ser sobrescrito para objetos individuales utilizando el método setFont().

// In your bootstrap:
Zend_Barcode_Object::setBarcodeFont('my_font.ttf');

// Later in your code:
Zend_Barcode::render(
    'code39',
    'pdf',
    array('text' => 'ZEND-FRAMEWORK')
); // will use 'my_font.ttf'

// or:
Zend_Barcode::render(
    'code39',
    'image',
    array(
        'text' => 'ZEND-FRAMEWORK',
        'font' => 3
    )
); // will use the 3rd GD internal font

16.3.2. Getters adicionales comunes

Tabla 16.2. Getters comunes

Getter Tipo de dato Descripción
getType() String Devuelve el nombre de la clase del código de barras sin el espacio de nombres (por ejemplo, Zend_Barcode_Object_Code39 devuelve simplemente "code39")
getRawText() String Devuelve el texto original proporcionado al objeto
getTextToDisplay() String Devuelve el texto a mostrar, incluyendo, si está activado, el valor del checksum
getQuietZone() Integer Devuelve el tamaño del espacio necesario antes y después del código de barras sin ningún dibujo
getInstructions() Array Devuelve las instrucciones de dibujo como un array.
getHeight($recalculate = false) Integer Devuelve la altura del código de barras calculada después de una posible rotación
getWidth($recalculate = false) Integer Devuelve el ancho del código de barras calculado después de una posible rotación
getOffsetTop($recalculate = false) Integer Devuelve la posición de la parte superior del código de barras calculada después de una posible rotación
getOffsetLeft($recalculate = false) Integer Devuelve la posición de la parte izquierda del código de barras calculada después de una posible rotación

16.3.3. Descripción de los códigos de barras incluidos

A continuación encontrará información detallada sobre todos los tipos de código de barras incluidos por defecto con Zend Framework.

16.3.3.1. Zend_Barcode_Object_Error

Este código de barras es un caso especial. Se utiliza internamente para renderizar automáticamente una excepción capturada por el componente Zend_Barcode.

16.3.3.2. Zend_Barcode_Object_Code128

  • Nombre: Code 128

  • Caracteres permitidos: el conjunto completo de caracteres ASCII

  • Checksum: opcional (módulo 103)

  • Longitud: variable

No hay opciones particulares para este código de barras.

16.3.3.3. Zend_Barcode_Object_Code25

  • Nombre: Code 25 (o Code 2 of 5 o Code 25 Industrial)

  • Caracteres permitidos: '0123456789'

  • Checksum: opcional (módulo 10)

  • Longitud: variable

No hay opciones particulares para este código de barras.

16.3.3.4. Zend_Barcode_Object_Code25interleaved

Este código de barras extiende Zend_Barcode_Object_Code25 (Code 2 of 5), y tiene las mismas particularidades y opciones, y añade lo siguiente:

  • Nombre: Code 2 of 5 Interleaved

  • Caracteres permitidos: '0123456789'

  • Checksum: opcional (módulo 10)

  • Longitud: variable (siempre número par de caracteres)

Las opciones disponibles incluyen:

Tabla 16.3. Opciones de Zend_Barcode_Object_Code25interleaved

Opción Tipo de dato Valor por defecto Descripción
withBearerBars Boolean FALSE Dibuja una barra gruesa en la parte superior e inferior del código de barras.

[Note] Nota

Si el número de caracteres no es par, Zend_Barcode_Object_Code25interleaved añadirá automáticamente el cero que falte al texto del código de barras.

16.3.3.5. Zend_Barcode_Object_Ean2

Este código de barras extiende Zend_Barcode_Object_Ean5 (EAN 5), y tiene las mismas particularidades y opciones, y añade lo siguiente:

  • Nombre: EAN-2

  • Caracteres permitidos: '0123456789'

  • Checksum: solo se usa internamente pero no se muestra

  • Longitud: 2 caracteres

No hay opciones particulares para este código de barras.

[Note] Nota

Si el número de caracteres es inferior a 2, Zend_Barcode_Object_Ean2 añadirá automáticamente el cero que falte al texto del código de barras.

16.3.3.6. Zend_Barcode_Object_Ean5

Este código de barras extiende Zend_Barcode_Object_Ean13 (EAN 13), y tiene las mismas particularidades y opciones, y añade lo siguiente:

  • Nombre: EAN-5

  • Caracteres permitidos: '0123456789'

  • Checksum: solo se usa internamente pero no se muestra

  • Longitud: 5 caracteres

No hay opciones particulares para este código de barras.

[Note] Nota

Si el número de caracteres es inferior a 5, Zend_Barcode_Object_Ean5 añadirá automáticamente el cero que falte al texto del código de barras.

16.3.3.7. Zend_Barcode_Object_Ean8

Este código de barras extiende Zend_Barcode_Object_Ean13 (EAN 13), y tiene las mismas particularidades y opciones, y añade lo siguiente:

  • Nombre: EAN-8

  • Caracteres permitidos: '0123456789'

  • Checksum: obligatorio (módulo 10)

  • Longitud: 8 caracteres (incluyendo el checksum)

No hay opciones particulares para este código de barras.

[Note] Nota

Si el número de caracteres es inferior a 8, Zend_Barcode_Object_Ean8 añadirá automáticamente el cero que falte al texto del código de barras.

16.3.3.8. Zend_Barcode_Object_Ean13

  • Nombre: EAN-13

  • Caracteres permitidos: '0123456789'

  • Checksum: obligatorio (módulo 10)

  • Longitud: 13 caracteres (incluyendo el checksum)

No hay opciones particulares para este código de barras.

[Note] Nota

Si el número de caracteres es inferior a 13, Zend_Barcode_Object_Ean13 añadirá automáticamente el cero que falte al texto del código de barras.

La opción withQuietZones no tiene efecto con este código de barras.

16.3.3.9. Zend_Barcode_Object_Code39

  • Nombre: Code 39

  • Caracteres permitidos: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ -.$/+%'

  • Checksum: opcional (módulo 43)

  • Longitud: variable

[Note] Nota

Zend_Barcode_Object_Code39 añadirá automáticamente los caracteres de inicio y fin ('*') por usted.

No hay opciones particulares para este código de barras.

16.3.3.10. Zend_Barcode_Object_Identcode

Este código de barras extiende Zend_Barcode_Object_Code25interleaved (Code 2 of 5 Interleaved), y hereda algunas de sus capacidades; también tiene algunas particularidades propias.

  • Nombre: Identcode (Deutsche Post Identcode)

  • Caracteres permitidos: '0123456789'

  • Checksum: obligatorio (módulo 10 diferente de Code25)

  • Longitud: 12 caracteres (incluyendo el checksum)

No hay opciones particulares para este código de barras.

[Note] Nota

Si el número de caracteres es inferior a 12, Zend_Barcode_Object_Identcode añadirá automáticamente los ceros que falten al texto del código de barras.

16.3.3.11. Zend_Barcode_Object_Itf14

Este código de barras extiende Zend_Barcode_Object_Code25interleaved (Code 2 of 5 Interleaved), y hereda algunas de sus capacidades; también tiene algunas particularidades propias.

  • Nombre: ITF-14

  • Caracteres permitidos: '0123456789'

  • Checksum: obligatorio (módulo 10)

  • Longitud: 14 caracteres (incluyendo el checksum)

No hay opciones particulares para este código de barras.

[Note] Nota

Si el número de caracteres es inferior a 14, Zend_Barcode_Object_Itf14 añadirá automáticamente los ceros que falten al texto del código de barras.

16.3.3.12. Zend_Barcode_Object_Leitcode

Este código de barras extiende Zend_Barcode_Object_Identcode (Deutsche Post Identcode), y hereda algunas de sus capacidades; también tiene algunas particularidades propias.

  • Nombre: Leitcode (Deutsche Post Leitcode)

  • Caracteres permitidos: '0123456789'

  • Checksum: obligatorio (módulo 10 diferente de Code25)

  • Longitud: 14 caracteres (incluyendo el checksum)

No hay opciones particulares para este código de barras.

[Note] Nota

Si el número de caracteres es inferior a 14, Zend_Barcode_Object_Leitcode añadirá automáticamente los ceros que falten al texto del código de barras.

16.3.3.13. Zend_Barcode_Object_Planet

  • Nombre: Planet (PostaL Alpha Numeric Encoding Technique)

  • Caracteres permitidos: '0123456789'

  • Checksum: obligatorio (módulo 10)

  • Longitud: 12 o 14 caracteres (incluyendo el checksum)

No hay opciones particulares para este código de barras.

16.3.3.14. Zend_Barcode_Object_Postnet

  • Nombre: Postnet (POSTal Numeric Encoding Technique)

  • Caracteres permitidos: '0123456789'

  • Checksum: obligatorio (módulo 10)

  • Longitud: 6, 7, 10 o 12 caracteres (incluyendo el checksum)

No hay opciones particulares para este código de barras.

16.3.3.15. Zend_Barcode_Object_Royalmail

  • Nombre: Royal Mail o RM4SCC (Royal Mail 4-State Customer Code)

  • Caracteres permitidos: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'

  • Checksum: obligatorio

  • Longitud: variable

No hay opciones particulares para este código de barras.

16.3.3.16. Zend_Barcode_Object_Upca

Este código de barras extiende Zend_Barcode_Object_Ean13 (EAN-13), y hereda algunas de sus capacidades; también tiene algunas particularidades propias.

  • Nombre: UPC-A (Universal Product Code)

  • Caracteres permitidos: '0123456789'

  • Checksum: obligatorio (módulo 10)

  • Longitud: 12 caracteres (incluyendo el checksum)

No hay opciones particulares para este código de barras.

[Note] Nota

Si el número de caracteres es inferior a 12, Zend_Barcode_Object_Upca añadirá automáticamente los ceros que falten al texto del código de barras.

La opción withQuietZones no tiene efecto con este código de barras.

16.3.3.17. Zend_Barcode_Object_Upce

Este código de barras extiende Zend_Barcode_Object_Upca (UPC-A), y hereda algunas de sus capacidades; también tiene algunas particularidades propias. El primer carácter del texto a codificar es el sistema (0 o 1).

  • Nombre: UPC-E (Universal Product Code)

  • Caracteres permitidos: '0123456789'

  • Checksum: obligatorio (módulo 10)

  • Longitud: 8 caracteres (incluyendo el checksum)

No hay opciones particulares para este código de barras.

[Note] Nota

Si el número de caracteres es inferior a 8, Zend_Barcode_Object_Upce añadirá automáticamente los ceros que falten al texto del código de barras.

[Note] Nota

Si el primer carácter del texto a codificar no es 0 o 1, Zend_Barcode_Object_Upce lo reemplazará automáticamente por 0.

La opción withQuietZones no tiene efecto con este código de barras.