* Variables para secuencias de escape Epson * Al Inicio del sistema
**************************************
PUBLIC DPMODE,INCOMP,INDOCE,OFCOMP,OFDOCE,;
PAGNN,DRAF,QUALY,COMUN,DOBLE_WID
DPMODE=CHR(27)+CHR(64) && Data Procesing Mode
INCOMP=CHR(27)+CHR(15) && Caracteres comprimidos
OFCOMP=CHR(18) && Quita Caracteres comprimidos
INDOCE=CHR(27)+CHR(77) && 12 cpi
OFDOCE=CHR(27)+CHR(80) && 10 cpi
PAGNN=CHR(27)+CHR(67) && + Chr(nLineasPorPagina)
DRAF =CHR(27)+CHR(120)+CHR(0) && Draft
QUALY =CHR(27)+CHR(gaPrint[120)+CHR(1) && Quality
DOBLE_WID =CHR(27)+CHR(33)+CHR(32) && Expandido
COMUN =CHR(27)+CHR(33)+CHR(0) && Normal
**********************************************************
Procedure ImprimoAlgo()
***********************
local lnLin
IF !gImpre(72,12)
RETURN
ENDIF
&& Comienza la impresión
lnLin=Prow()
@ lnLin,1 say cpconvert(1252,437,"Nombre de la Empresa")
@ Avalin(@Lnlin,1),1 say "Texto siguiente..."
@ Avalin(@Lnlin,1),1 say "Texto siguiente..."
if LnLin>70
ejec
LnLin=Prow()
endif
&& Fin de la impresión
EndPrint()
Endproc
***************************************************************
* Inicio de impresión * Para esto conviene escribir una función
* Enviando Lineas por página, cpi y modo
**********************
PROCEDURE gImpre(nLineas,nCpi,lQualy)
*------------------------------------
SET CONSOLE OFF
Tellimpre=GetPrinter()
IF EMPTY(tellImpre)
Return .F.
ENDIF
SET CONSOLE OFF
lcModo=iif(lQualy,"QUALY","DRAF")
lcCpi=INDOCE
nCpi=Evl(nCpi,12)
do case
case nCpi=10
lcCpi=""
CASE nCpi=12
LCCPI=INDOCE
case nCpi=15
lcCpi=INCOMP
CASE nCpi>15
lcCpi=INDOCE+INCOMP
SET PRINTER TO NAME (TellImpre)
??? DPMODE+PAGNN+chr(nLineas)+LCMODO+OFCOMP+LCCPI && nLineas lpp, cpi, Draft/Quality
SET DEVICE TO PRINTER
@ PROW(),0 SAY " "
lnLin=Prow()
ENDPROC
****************************
PROCEDURE EndPrint(xlNoEject)
****************************
@ prow(),1 say " " && libera última línea del buffer de la impresora
if Prow()=0
xlNoEject=.t. && evita el Eject si saltó a hoja nueva
endif
??? OFCOMP+OFDOCE+draf+comun && deja la impresora en DRAF
SET PRINTER OFF
if !xlNoEject
EJECT
ENDIF