Set device to printer
Enviado: 02 Dez 2015 07:50
Mas, só para registro, qual era o problema mesmo? pode servir de referência para outros programadores.
Vamos supor que sua LX300 seja USB. Como mandar impressão para ela? Com a dica acima, vai conseguir. Essa dica serve para qualquer tipo de conexão de impressora, USB, SERIAL, REDE e até PDFCreator.microvolution escreveu:funciona mesmo sem ter fisicamente impressora matricial (lx 300/810) instalada
Código: Selecionar todos
SET PRINTER TO ("CLI.PRN")
Código: Selecionar todos
SET PRINTER TO ( "TEMP\" + CLI + ".PRN" )
Código: Selecionar todos
cTmpFile := MyTempFile( "PRN" )
SET PRINTER TO ( cTmpFIle )
...
fErase( cTmpFile )
Código: Selecionar todos
SET PRINTER TO ( cPath + cFileName + ".prn" )
USE ( cPath + cFileName )
SET INDEX TO ( cPath + cFileName )
x = &( variável1 + variável 2 + variável3 )
Código: Selecionar todos
cARQUIVO := "&CLI..PRN"
ImprimeRaw(cARQUIVO)O problema todo está na forma que você está tentando usar a macro, então o melhor a fazer, neste caso, é evitar usar macromicrovolution escreveu:Essa, tá difícil né?
Código: Selecionar todos
cArq:=CLI+".TXT" //aqui vamos juntar (somar) o conteúdo de CLI + ".TXT", então se CLI é igual 0003, o resultado será 0003.txt
SET PRINTER TO (cArq)
SET DEVICE TO PRINT
...
...
SET PRINTER TO
SET DEVICE TO SCREEN
cDefaultPrinter:= WIN_PRINTERGETDEFAULT()
WIN_PRINTFILERAW(cDefaultPrinter, cArq)Código: Selecionar todos
?'antes do del cli'
wait
? '&CLI..prn' *** 0001.PRN
? &CLI *** 1
? 'cli.prn' *** cli.prn
? CLI *** 0001
wait
// hb_run ('del &CLI..PRN') // NÃO EXCLUI
ferase("&CLI..PRN") // não exclui
ferase("0001.PRN") ************* SÓ EXCLUI DESTA FORMA, e, está fica muito limita, preciso da macro substituição.
?'após del CLI'
waitA extensão .PRN (abreviação de PRINTER) é um padrão usado pela opção Imprimir para arquivo. Sua codificação pode variar dependendo do programa que o gerar. Pode ser relatórios, fotos, e outros tipos de arquivos, assim, ao abri-lo em um editor ele pode se apresentar esdrúxulo, pois depende da forma que ele foi gerado.microvolution escreveu:1ª - qual a diferença mesmo do arquivo .PRN e .TXT?
Um arquivo .TXT que contém comandos para impressoras compatíveis com o modo RAW (comandos ESC/POS), esses comandos não serão entendidos pela função Win32Prn(). A função Win32Prn() imprime diretamente no Spooler do Windows, e envia a impressora após o comando :EndDoc().microvolution escreveu:2ª - no caso de um arquivo .PRN ou .TXT que foi gerado pelo SET PRINTER TO [...] para impressão tanto para HB_RUN ("TYPE...") e WIN_PRINTFILERAW(), esta dúvida aqui é: COMO FAÇO para usar este arquivo e criar "braço a braço" as linhas novamente de impressão para WIN32PRN?
Sim. Embora há no fórum exemplos de como você pode carregar em memória um arquivo .TXT com comandos ESC/POS, remover esses comandos e imprimir com Win32Prn(), reescrever suas funções é o caminho inclusive porque você já está com a mão na massa da migração, então na minha opinião esse é o melhor caminho.microvolution escreveu:Ou terei, que redesenhá-lo linha por linha dos @prow, traduzindo para WIN32PRN?
