duvida com rotina de impressao em jato de tinta
Enviado: 22 Jan 2016 18:24
ola pessoal, essa rotina, achei aqui no forum, estou compilando com xHarbour, executa tudo corretamente fiz passo a passo pelo debugador e ate entra na fila de impressao, mas nao imprime nada, fiz o teste com a impressora imprimindo outras coisas e esta tudo certo, alguem usou essa rotina o que há de errado nela ? Estou tentando imprimir em uma Hp DeskJet 3510 Series
Código: Selecionar todos
* TITULO : EXTRATO DO S@T FISCAL *
* DATA : 08/09/2015 *
* PROGRAMA : DEMO.PRG *
* COMENTARIO : IMPRESSAO DO EXTRATO *
* COMENTARIO : PARA IMPRESSORA EPSON *
* COMENTARIO : TM-T20 *
* COMENTARIO : AGRADECIMENTOS AO SR. *
* COMENTARIO : FLAVIO SILVA *
* COMENTARIO : FlavioSilva@epson.com.br *
* DIREITOS : INFO2000 SISTEMAS *
* CLIENTE -->: ### TODOS ### *
* COMPILAR COM HARBOUR OU (X)HARBOUR *
* OU AINDA CLIPPER *
*****************************************
FUNCTION MAIN() && PARA COMPILAR EM CLIPPER RETIRAR ESSA LINHA
LOCAL I := 0
*SET PRINT TO "LPT1" && PARA COMPILAR COM CLIPPER DESCOMENTE ESSA LINHA
SET PRINT TO ( GetDefaultPrinter() ) && PARA COMPILAR EM CLIPPER RETIRAR ESSA LINHA
SET CONSOLE OFF
SET PRINT ON
SET DEVICE TO PRINT
SET MARGIN TO 0
SETPRC( 0, 0 )
*
IMP_Cabecalho()
**
@ PROW()+1,0 SAY "#|COD|DESC|QTD|UN|VL UN R$|(VLTR R$)*|VL ITEM R$"
@ PROW()+1,0 SAY REPLI( "-", 48 )
I++
@ PROW()+1,0 SAY STRZERO( I, 3, 0 )
@ PROW(),4 SAY "123456"
@ PROW(),18 SAY "TESTE DE PRODUTO"
@ PROW()+1,05 SAY "1,000"
@ PROW(),15 SAY "X"
@ PROW(),20 SAY TRANSF( 10, "@E 999,999.99" )
@ PROW(),30 SAY TRANSF( 10, "@E 999,999,999.99" )
*
IMP_TOTAIS()
**
SETPRC(0,0)
SET PRINT OFF
SET CONSOLE ON
SET PRINTER TO
RETURN NIL
/*
IMPRIME O CABELHO DO EXTRATO
*/
STATIC FUNCTION IMP_CABECALHO()
*
@ PROW(),0 SAY PADC( "NOME FANTASIA", 48 )
@ PROW()+1,0 SAY PADC( "RAZAO SOCIAL", 48 )
@ PROW()+1,0 SAY PADC( "RUA UM NRO. 2", 48 )
@ PROW()+1,0 SAY PADC( "SAO PAULO - SP", 48 )
@ PROW()+1,0 SAY PADC( "CNPJ: 11111111111 IE: 22222222", 48 )
@ PROW()+1,0 SAY REPLI( "-", 48 )
*
@ PROW()+1,0 SAY PADC( "Extrato No: 123456" , 48 )
@ PROW()+1,0 SAY PADC( "CUPOM FISCAL ELETRONICO - SAT", 48 )
*
@ PROW()+1,0 SAY REPLI( "-", 48 )
@ PROW()+1,0 SAY "CPF/CNPJ do Consumidor: "
@ PROW()+1,0 SAY REPLI( "-", 48 )
RETURN NIL
/*
IMPRIME OS TOTAIS DO EXTRATO
*/
STATIC FUNCTION IMP_TOTAIS()
@ PROW()+1,0 SAY "TOTAL R$ " + TRANSF( 10, "@E 9,999,999.99" )
@ PROW()+1,0 SAY "Dinheiro"
@ PROW(),26 SAY TRANSF( 10, "@E 999,999,999.99" )
@ PROW()+1,0 SAY REPLI( "-", 48 )
@ PROW()+1,0 SAY PADC( "SAT No. 987654321", 48 )
@ PROW()+1,0 SAY PADC( DTOC( DATE() ) +" - "+ TIME(), 48 )
@ PROW(),0 SAY CHR(10) + CHR(27) + CHR(97) + CHR(49) && Centraliza a Impressão
@ PROW(),0 SAY CHR(27) + CHR(33) + CHR(1) && Muda para a FontB para que o Texto seja impresso em 1 linha
@ PROW(),0 SAY PADC( "3514 1146 3772 2200 3730 5990 0000 4630 0011 5817 9941", 56 )
@ PROW(),0 SAY CHR(27) + CHR(33) + CHR(0) && Volta para a FontA
**
QRCODE8()
**
@ PROW(),0 SAY CHR(27) + "a" + CHR(0) && Volta a justificar à esquerda
@ PROW()+1,0 SAY PADC( "OBRIGADO PELA PREFERENCIA", 48 )
@ PROW()+1,0 SAY REPLICATE( "-", 48 )
@ PROW()+1,0 SAY PADC( "www.info2000sistemas.com.br", 48 )
@ PROW()+8,0 SAY ""
@ PROW(),0 SAY CHR(29) + CHR(86) + CHR(0) && Aciona Guilhotina
RETURN NIL
**
* FUNCAO PARA IMPRIMIR O QRCode 8cm
**
STATIC FUNCTION QRCODE8( QUAL, cXML )
**
* STRING com a linha de dados do QRCode - juntando as variáveis acima separadas pelo pipe.
* Exemplo: "35141146377222003730599000004630001158179941|20141105134922|10.00|61694805808|m+4o8FY1lig1zcy6VU3t7INVwE6kiA/ykLXKDFZfb9gu0g4wl3Fk2HYaRhSt8G+yk9mP/R65m3R7V2IO8CxnmO1oVtlamB6UKA+UZZqDNEqtYlhQzLySNzMG0thaNMZsq5RxmQ3eQLPw8LLez3MqWvUveFXNSSq6AGEX2+KOdavteo3K2L06SQoVIjwkmcgRzqhfHP3y8t2wfr1nw/WAnaCF9ZY/K4dTykk3hsXcan/MKCTBlcSOhNgSh3sdsQHpl2w2tmbLBsYBLFkuvKlwzHarNJQ1RfRznGdojHglQH1KVtbAUXKke54pdRt3JL7nJlR+Lbmtd2tjcT2vRyTepw=="
**
LOCAL x_TmStp := "20141105134922"
LOCAL x_Chave := "35141146377222003730599000004630001158179941"
LOCAL x_Valor := "10.00"
LOCAL x_CNPJ := ""
LOCAL x_Ass := "m+4o8FY1lig1zcy6VU3t7INVwE6kiA/ykLXKDFZfb9gu0g4wl3Fk2HYaRhSt8G+yk9mP/R65m3R7V2IO8CxnmO1oVtlamB6UKA+UZZqDNEqtYlhQzLySNzMG0thaNMZsq5RxmQ3eQLPw8LLez3MqWvUveFXNSSq6AGEX2+KOdavteo3K2L06SQoVIjwkmcgRzqhfHP3y8t2wfr1nw/WAnaCF9ZY/K4dTykk3hsXcan/MKCTBlcSOhNgSh3sdsQHpl2w2tmbLBsYBLFkuvKlwzHarNJQ1RfRznGdojHglQH1KVtbAUXKke54pdRt3JL7nJlR+Lbmtd2tjcT2vRyTepw=="
LOCAL x_URL_QrCode, iTamanho, iLow, iHigh, iCount, ComandoQR
x_URL_QrCode = x_Chave+"|"+x_TmStp+"|"+x_Valor+"|"+x_CNPJ+"|"+x_Ass
**
/*
BYTES PARA COMPOR O QRCODE
*/
iTamanho := Len( x_URL_QrCode ) + 3
iLow := MOD( iTamanho, 256 )
iHigh := iTamanho / 256
@ PROW(),0 SAY CHR(29) + "h" + CHR(60) && Altura do código de barras
@ PROW(),0 SAY CHR(29) + "w" + CHR(2) && Largura das barras
@ PROW(),0 SAY CHR(29) + "H0" && Apresentação numérica do código DE BARRAS / H0 = INIBE, H2 = MOSTRA
* Imprime o Code128C com 44 algarismos
ComandoQR := CHR(29) + CHR(107) + CHR(73) + CHR(24) + "{C"
For iCount = 0 To 22
ComandoQR += CHR( VAL( SUBSTR( x_Chave, (iCount * 2) + 1, 2 ) ) )
Next
@ PROW()+2,0 SAY ComandoQR
* Fim da impressão do Code128C
* Impressão do QRCode
@ PROW()+1,0 SAY CHR(29) + "(k" + CHR(iLow) + CHR(iHigh)+CHR(49)+CHR(80)+CHR(48)+ x_URL_QrCode && QRCode PROPRIAMENTE DITO
@ PROW()+1,0 SAY CHR(29) + "(k"+ CHR(3)+CHR(0)+CHR(49)+CHR(81)+CHR(48)
Return Nil
**
* FINAL DO PROGRAMA DEMO.PRG
**