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