Sec. Escape a Impresoras
Para controlar las impresoras solemos enviarles las secuencias de escape correspondientes en cada caso. Estas se pueden enviar con variables alfanuméricas o binarias. Veamos como enviaríamos la secuencia de letra comprimida a una impresora HP.

Para enviar la secuencia hexadecimal, primero la definimos en la Working-Storage Section como tal y luego en la Procedure Division, donde deseemos que empiece con el formato de comprimido la mandamos a la impresora.

WORKING-STORAGE SECTION.
01  COMPRIMIDA PIC X(5) VALUE H"1B266B3253".
..
PROCEDURE DIVISION.
INICIO.
     WRITE
nombre_registro_impresora FROM COMPRIMIDA AFTER 0.

A partir de éste momento todas las líneas que escribiéramos tomarían el formato que hemos dado, hasta que de nuevo se le mande otra orden que la cancele.
Para hacerlo de forma binaria, crearíamos en la Working-Storage una variable para la conversión de números decimales a binarios y otra donde guardaríamos el resultado.
A continuación se asignarán los valores decimales y se irán guardando en binario. Vamos a pasar primero de hexadecimal a decimal. Los valores serían:
1B=027, 26=038, 6B=107, 32=050, 53=083.

01  VALORES PIC X(5).
01  VALOR REDEFINES VALORES.
      02  TVAL PIC X OCCURS 5 TIMES.

01  HEXA.
     02  SC-BIN PIC 9(4) COMP-1.
     02  SC-REDEF REDEFINES SC-BIN.
          03  FILLER PIC X.
          03  SC-CH PIC X.
..
PROCEDURE DIVISION.
INICIO.
     MOVE 27 TO SC-BIN MOVE SC-CH TO TVAL (1).
     MOVE 38 TO SC-BIN MOVE SC-CH TO TVAL (2).
     MOVE 107 TO SC-BIN MOVE SC-CH TO TVAL (3).
     MOVE 50 TO SC-BIN MOVE SC-CH TO TVAL (4).
     MOVE 83 TO SC-BIN MOVE SC-CH TO TVAL (5).
     ...
     WRITE
nombre_registro_impresora FROM VALORES AFTER 0.
En ambos casos, el nombre_registro_impresora, corresponderá al nombre con el que hemos designado al registro de la impresora en la FD.
Y el hecho de incluir la opción AFTER 0, es para que no produzca el avance de una línea al insertar la secuencia.

Algunos ejemplos de secuencias muy utilizadas:
ORDEN  EPSON, IBM, CANON PCL-5 (HP)
SALTO DE PAGINA 012 027 038 108 048 072
SUBRAYADO 027 045 001 027 038 100 048 068
QUITAR SUBRAYADO 027 045 000 027 038 100 064
NEGRITA 027 069 027 040 115 051 066
NORMAL 027 070 027 040 115 048 066
ITALICA 027 052  027 040 115 049 083
QUITAR ITALICA 027 053 027 040 115 048 083




Este artículo proviene de Cobol en español
http://www.escobol.com

La dirección de esta noticia es:
http://www.escobol.com/modules.php?name=Sections&op=viewarticle&artid=80