viernes, 27 de julio de 2012


Códigos de barras como marcas de ensobrado.

Las antiguas máquinas dobladoras y ensobradoras de papel usaban sus propias marcas de ensobrado, esas líneas que se veían a menudo (y todavía a veces las encontramos) en los bordes de nuestros documentos bancarios.

Las máquinas modernas leen códigos de barras estándar, lo cual simplifica la codificación de las marcas, ya que todos los productos del mercado pueden generar dichos códigos.

HP Exstream ofrece enormes posibilidades para configurar de forma automática los trabajos de postproceso en alto volumen, desde la doble cara hasta la impresión de varias páginas en una, pasando por las opciones de ensobrado, inserción, etcétera. La verdad es que las posibilidades son tan amplias que no me ha dado tiempo de hacer un ejemplo, como hubiera querido, utilizando algunas de ellas, por ejemplo la doble cara automática y otras interesantes, pero sí que he podido hacer un ejemplo sencillo de construcción “a mano” de un código de barras útil para máquinas de ensobrado.

En el ejemplo que he creado, la impresión es a una sola cara, por tanto hay marcas en todas las páginas (si la impresión es a doble cara, las marcas van solo en las páginas impares y hay que asegurarse de que se inserta una página en blanco al final cuando el número de páginas de un cliente es impar). Se trata, por tanto, de construir un código de barras que cumpla las especificaciones de la máquina ensobradora que lo va a interpretar.

Supongamos que dichas especificaciones son las siguientes:

-          El código debe situarse en la esquina superior derecha de la página, inclinado 90º (legible por tanto de arriba abajo).
-          Debe empezar a una distancia entre 0,50 y 0,75 pulgadas del borde superior y entre 0,25 y 0,50 del borde derecho.
-          Debe tener un ancho mínimo de 0,25 pulgadas y una longitud mínima de 1 pulgada y máxima de 1,50 pulgadas.
-          Debe estar codificado en Code-128 tipo A y contener los siguientes caracteres:
o   Cuatro caracteres para el contador de hojas, que empezará en 0 y aumentará en uno con cada página; si llega a 9999, la siguiente página empezará desde 0 de nuevo.
o   Tres caracteres para posibles inserciones de hojas en el sobre. Cada carácter valdrá 1 si hay que insertar la hoja correspondiente, y 0 si no.
o   Un carácter para señalar cuándo se deben ensobrar las hojas disponibles en ese momento. Valdrá 1 cuando haya que ensobrar y 0 cuando no.

El último carácter, por tanto, valdrá 1 para la última página de cada documento a cliente.

En cuanto a los insertos, por nuestra parte solo vamos a usar 2 posibles insertos, por tanto el tercer carácter de inserción valdrá siempre 0, pero hay que ponerlo igual para que la ensobradora entienda el código correctamente. Nuestros dos insertos serán un sobre de respuesta comercial, que se insertará para cada cliente, y una hoja de publicidad, que irá solo a nuestros clientes más nuevos (los que tienen un código de cliente superior a 200000).

Pondremos los valores correspondientes a uno solo cuando se cumplan las condiciones expuestas y además haya que ensobrar, para que la máquina, en el momento de doblar las hojas del documento y antes de meterlas en el sobre, añada los insertos que toquen.

HP Exstream proporciona diferentes variables de número de páginas, algunas de las cuales vamos a utilizar:

-          SYS_PageTotalInRun: Esta variable empieza en 1 y aumenta en 1 con cada página, y no se pone a cero al cambiar de cliente, sino que sigue aumentando.
-           SYS_PagePrintEnd: Esta variable indica en qué número de página termina el documento en cuestión. Por ejemplo, para un documento de 5 páginas, valdrá siempre 5, aunque estemos en una página anterior.
-          SYS_PageInDocument: Esta variable indica en qué número de página estamos, dentro del documento.

Crearemos una variable propia basada en SYS_PageTotalInRun, teniendo en cuenta que tendremos que restarle 1 (ya que nuestro contador debe empezar en 0) y restarle 10000 cuando pase de 9999. Esa variable formará los cuatro primeros caracteres de nuestro código. Hay que definirla como “Fórmula” y especificar que se compute en cada página. Su fórmula es la siguiente:

Value = SYS_PageTotalInRun – 1
Do While Value >= 10000
   Value = Value – 1
Loop

(En realidad he puesto 10 en lugar de 10000, para comprobar que salta a cero cuando corresopnde sin tener que generar 10000 páginas).

Por otro lado, cuando SYS_ PagePrintEnd y SYS_ PageInDocument sean iguales querrá decir que estamos en la última página, por tanto pondremos a uno nuestros caracteres octavo (ensobrado de hojas disponibles) y quinto (inserción de sobre para respuesta comercial). La fórmula de la variable correspondiente es:

If SYS_PagePrintEnd = SYS_PageInDocument Then
   Value = 1
Else
   Value = 0
End If

Si además el código de cliente es mayor que 200000, pondremos también a 1 el sexto carácter (inserción de publicidad para nuevos clientes). El séptimo carácter permanecerá siempre a cero. La fórmula:

If SYS_PagePrintEnd = SYS_PageInDocument Then
   If Ensobrado_codigo > 200000 Then
      Value = 1
   Else
      Value = 0
   End If
Else
   Value = 0
End If

En la carpeta usuarios\jfblanco\Ensobrado hay un PDF de ejemplo de salida, organizado por HP Exstream en clientes>documentos>páginas. Hay cuatro clientes, cada uno con un documento. El documento del primer cliente tiene 5 páginas, el del segundo 4, el del tercero 6 y el del cuarto 9 (veinte páginas en total). Se muestran los valores intermedios que se han usado para configurar el código de barras. Este aparece en su posición de lectura, inclinado, cumpliendo las especificaciones de posición, altura y anchura, y sin caracteres legibles. Para poder comprobar los valores, he puesto otro código de barras con los mismos valores pero en horizontal y con caracteres legibles.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.