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_Configpasado al constructor.Como un array pasado al método
setOptions().Como un objeto
Zend_Configpasado al métodosetConfig().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);
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 |
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
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 |
A continuación encontrará información detallada sobre todos los tipos de código de barras incluidos por defecto con Zend Framework.
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.
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.
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.
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. |
![]() |
Nota |
|---|---|
Si el número de caracteres no es par,
|
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.
![]() |
Nota |
|---|---|
Si el número de caracteres es inferior a 2,
|
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.
![]() |
Nota |
|---|---|
Si el número de caracteres es inferior a 5,
|
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.
![]() |
Nota |
|---|---|
Si el número de caracteres es inferior a 8,
|
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.
![]() |
Nota |
|---|---|
|
Si el número de caracteres es inferior a 13,
La opción withQuietZones no tiene efecto con este código de barras. |
Nombre: Code 39
Caracteres permitidos: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ -.$/+%'
Checksum: opcional (módulo 43)
Longitud: variable
![]() |
Nota |
|---|---|
|
No hay opciones particulares para este código de barras.
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.
![]() |
Nota |
|---|---|
Si el número de caracteres es inferior a 12,
|
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.
![]() |
Nota |
|---|---|
Si el número de caracteres es inferior a 14,
|
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.
![]() |
Nota |
|---|---|
Si el número de caracteres es inferior a 14,
|
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.
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.
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.
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.
![]() |
Nota |
|---|---|
|
Si el número de caracteres es inferior a 12,
La opción withQuietZones no tiene efecto con este código de barras. |
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.
![]() |
Nota |
|---|---|
Si el número de caracteres es inferior a 8,
|
![]() |
Nota |
|---|---|
|
Si el primer carácter del texto a codificar no es 0 o 1,
La opción withQuietZones no tiene efecto con este código de barras. |
![[Note]](images/note.png)