#xcommand @ <nRow>, <nCol> SAY <cText> OF <oPrinter> => <oPrinter>:Say(<nRow>, <nCol>, <cText> )
FUNCTION IMP_TESTE_MATRICIAL( OpcaoImp )
LOCAL nLinha, oPrn
IF MsgYesNo( "Atenção Por Favor:" + CRLF + ;
"Posso Imprimir?" + CRLF + ;
"Impressora Já Está Ligada?", ;
"Por Favor, Confirme!!!" ) = .F.
RETURN NIL
ENDIF
nLinha := 0
// Para Rede de Computadores
// oPrn:New("\\seuterminal\suaimpressora\LPT1")
oPrn:= TDosPrn():New( "TESTEIMP.TXT" ) // para ir para um arquivo .txt
// oPrn:= TDosPrn():New() // para ir para impressora em definitivo
// oPrn := TDosPrn():New("lpt1") // para ir para impressora em definitivo
// Este Comando, Liga a Impressora. NÆo Tirar Nunca
oPrn:StartPage() // da Start(inicializa) na p gina.
oPrn:lZeraBuffer := .T. // Inibe o Pulo da PÂ gina
//-> Modo Draft
@ nLinha, 00 SAY +CHR(18)+CHR(27)+"2"+CHR(27)+"H" OF oPrn
@ nLinha, 00 SAY " "+CHR(27)+"H" + CHR(27)+"W"+CHR(0) + ;
CHR(20) + CHR(18) + CHR(27)+"-"+CHR(0) + ;
CHR(27)+"F" + CHR(27)+"5"+CHR(27)+"W"+CHR(0) + ;
CHR(27)+"5"+CHR(27)+"-"+CHR(0) + ;
CHR(27)+"5"+CHR(27)+"W"+CHR(0)+CHR(27)+"-"+CHR(0) + ;
CHR(27)+"W"+CHR(0)+CHR(27)+"-"+CHR(0) OF oPrn
nLinha := nLinha + 1
DO CASE
CASE OPCAOIMP = 1
@ nLinha,01 SAY "A - M o d o Condensado com 6 Linhas Por Polegada"+CHR(15) OF oPrn
nLinha := nLinha + 1
@ nLinha, 00 SAY "." OF oPrn
nLinha := nLinha + 1
CASE OPCAOIMP = 2
@ nLinha,01 SAY "B - M o d o Carta com 6 Linhas Por Polegada"+CHR(27)+"G" OF oPrn
nLinha := nLinha + 1
@ nLinha, 00 SAY "." OF oPrn
nLinha := nLinha + 1
CASE OPCAOIMP = 3
@ nLinha,01 SAY "C - Modo Carta Condensado com 6 Linhas por Polegada"+CHR(27)+"G"+CHR(15) OF oPrn
nLinha := nLinha + 1
@ nLinha, 00 SAY "." OF oPrn
nLinha := nLinha + 1
CASE OPCAOIMP = 4
@ nLinha,01 SAY "D - M o d o Normal com 8 Linhas por Polegada"+CHR(27)+"0" OF oPrn
nLinha := nLinha + 1
@ nLinha, 00 SAY "." OF oPrn
nLinha := nLinha + 1
CASE OPCAOIMP = 5
@ nLinha,01 SAY "E - M o d o Condensado com 8 Linhas por Polegada"+CHR(15)+CHR(27)+"0" OF oPrn
nLinha := nLinha + 1
@ nLinha, 00 SAY "." OF oPrn
nLinha := nLinha + 1
CASE OPCAOIMP = 6
@ nLinha,01 SAY "F - M o d o Carta com 8 Linhas por Polegada"+CHR(27)+"G"+CHR(27)+"0" OF oPrn
nLinha := nLinha + 1
@ nLinha, 00 SAY "." OF oPrn
nLinha := nLinha + 1
CASE OPCAOIMP = 7
@ nLinha,01 SAY "G - Modo Carta Condensado com 8 Linhas por Polegada"+CHR(15)+CHR(27)+"G"+CHR(27) OF oPrn
nLinha := nLinha + 1
@ nLinha, 00 SAY "." OF oPrn
nLinha := nLinha + 1
CASE OPCAOIMP = 8
@ nLinha,01 SAY "H - M o d o Condensado c o m dupla Impressao"+CHR(15)+CHR(27)+"E" OF oPrn
nLinha := nLinha + 1
@ nLinha, 00 SAY "." OF oPrn
nLinha := nLinha + 1
CASE OPCAOIMP = 9
@ nLinha,01 SAY "I - M o d o N o r m a l c o m d u p l a Impressao"+CHR(27)+"E" OF oPrn
nLinha := nLinha + 1
@ nLinha, 00 SAY "." OF oPrn
nLinha := nLinha + 1
CASE OPCAOIMP = 10
@ nLinha,01 SAY "J - V o l t a ao Normal com 6 Linhas por Polegada"+CHR(18)+CHR(27)+"2"+CHR(27)+"H" OF oPrn
nLinha := nLinha + 1
@ nLinha, 00 SAY "." OF oPrn
nLinha := nLinha + 1
ENDCASE
//-> Modo Draft
@ nLinha, 00 SAY +CHR(18)+CHR(27)+"2"+CHR(27)+"H" OF oPrn
oPrn:EndPage()
oPrn:End()
//--- imprime no spool do windows, liberando o micro para trabalhar.
ImpSpool( "TESTEIMP.TXT",, .T. )
//--- opcionamente pode-se apagar o arquivo passando .t. no 3o. parametro.
RETURN NIL