domingo, 23 de enero de 2011

Imprimir un fuente con 132 líneas por página.

No suelo necesitar imprimir fuentes, pero hace poco me encontré con un fuente de tantas líneas que no tuve más remedio que imprimirlo y el resultado fueron 59 páginas. ¡¡¡ Ostrás !!!, pues yo quiero reducir el número de páginas. ¿Como? Aumentando el nº de líneas por página. Total, que me hice un mandato y un CL que me permitiese listar normal o comprimido para posibles posteriores necesidades. Aquí están por si alguien lo quiere utilizar.

Sobra decir que necesitas una configuración de impresora que soporte esa resolución y que se pueden incluir todas las opciones que quieras (8 líneas por página, 15 cpi, etc.) a gusto del consumidor.

Mandato.

/*-------------------------------------------------------------------*/
/* IMPRIMIR UN FUENTE. */
/* */
/* Para compilar con el programa C9PRTSRC */
/*-------------------------------------------------------------------*/
CMD PROMPT('Imprimir un fuente.')
PARM KWD(FILE) TYPE(*CHAR) LEN(10) RSTD(*NO) +
DFT(*PRV) MIN(0) CHOICE('Nombre PF +
Fuente') PROMPT('PF Fuente')
PARM KWD(LIB) TYPE(*CHAR) LEN(10) RSTD(*NO) +
MIN(0) CHOICE('*LIBL, Nombre biblioteca') +
PROMPT('Biblioteca PF-SRC')
PARM KWD(MBR) TYPE(*CHAR) LEN(10) RSTD(*NO) +
DFT(*PRV) MIN(0) CHOICE('*FIRST, Nombre +
miembro') PROMPT('Miembro a imprimir')
PARM KWD(PRT) TYPE(*CHAR) LEN(10) RSTD(*NO) +
DFT(*JOB) MIN(0) CHOICE('*JOB, Nombre +
impresora') PROMPT('Impresora a utilizar')
PARM KWD(MOD) TYPE(*CHAR) LEN(1) RSTD(*YES) +
DFT(N) VALUES(N C) CHOICE('N C') +
PROMPT('¿Normal o Comprimido? N/C')

Y a continuación el pequeño CL que recibe los parámetros del mandato.

/******************************************************************************/
/* IMPRIMIR FUENTE */
/******************************************************************************/
PGM PARM(&FILE &LIB &MBR &PRT &MOD)
/**/
DCL VAR(&FILE) TYPE(*CHAR) LEN(10)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&MBR) TYPE(*CHAR) LEN(10)
DCL VAR(&PRT) TYPE(*CHAR) LEN(10)
DCL VAR(&MOD) TYPE(*CHAR) LEN(1) /* Modalidad: +
C=Comprimido. */
/**/
IF COND(&PRT *EQ ' ') THEN(DO)
CHGVAR VAR(&PRT) VALUE('*JOB')
ENDDO
/* OVRPRTF */
IF COND(&MOD *EQ 'C') THEN(DO)
OVRPRTF FILE(QPSUPRTF) DEV(&PRT) PAGESIZE(132) +
LPI(12) CPI(16.7) OVRFLW(130) OUTQ(*DEV) +
SECURE(*YES)
ENDDO
ELSE CMD(DO)
OVRPRTF FILE(QPSUPRTF) DEV(&PRT) OUTQ(*DEV) +
SECURE(*YES)
ENDDO
/* IMPRIMIR */
STRSEU SRCFILE(&LIB/&FILE) SRCMBR(&MBR) OPTION(6)
/* ELIMINAR OVRPRTF */
DLTOVR FILE(QPSUPRTF)
/**/
ENDPGM

Saludos.

No hay comentarios:

Publicar un comentario

Muchas gracias por tus comentarios.