Set device to printer
Moderador: Moderadores
Set device to printer
Mas, só para registro, qual era o problema mesmo? pode servir de referência para outros programadores.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Set device to printer
Basta ter a impressora instalada no Windows. Voce ativa o COMPATILHAMENTO dela, dando um nome a ela para ser reconhecida na rede. Recomendo um nome com até 8 caracteres. Depois basta usar essa dica que lhe passei.
Se voce for optar em usar as funções de impressões do harbour, obrigatoriamente, sua impressora tem que estar instalada no Windows também.
Ate+
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
Se voce for optar em usar as funções de impressões do harbour, obrigatoriamente, sua impressora tem que estar instalada no Windows também.
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Set device to printer
Comentário:
c:\mvinfo\hb32\exemplos\setdevice
nomes de pastas com mais de 8 letras, não sei como isso é interpretado usando SET DEVICE TO &CLI.
Talvez mais fácil não inventar, como percebeu o BAT funcionou.
Não precisa indicar a pasta, quando se trata da pasta atual, assim nem importa que letras tem para o aplicativo.
Ou se preferir uma pasta temp:
Supondo que o aplicativo trabalhe em:
D:\SICCA
Crie
D:\SICCA\TEMP
No programa, não se preocupe com a pasta atual, apenas use a pasta RELATIVA à posição atual.
Ao indicar temp\001.prn, vai ser a pasta temp dentro da pasta atual.
Mais fácil simplificar, assim fica sempre mais fácil resolver.
Última observação:
Para o programa executando numa janela console, está visível a pasta atual, será a pasta aonde a janela console foi aberta.
Para um programa rodando com HMG ou outra LIB gráfica, ou por atalho, vai ter que dar atenção às propriedades do atalho, pra garantir que a pasta considerada como atual seja a pasta correta.
O negócio é simplificar.
Pra que configurar pasta de trabalho, se pode fazer isso no atalho, ou no BAT, ou de outra forma.
Deixando pasta atual, vai funcionar em qualquer lugar, até mesmo direto no pen drive.
c:\mvinfo\hb32\exemplos\setdevice
nomes de pastas com mais de 8 letras, não sei como isso é interpretado usando SET DEVICE TO &CLI.
Talvez mais fácil não inventar, como percebeu o BAT funcionou.
Não precisa indicar a pasta, quando se trata da pasta atual, assim nem importa que letras tem para o aplicativo.
Código: Selecionar todos
SET PRINTER TO ("CLI.PRN")
Supondo que o aplicativo trabalhe em:
D:\SICCA
Crie
D:\SICCA\TEMP
No programa, não se preocupe com a pasta atual, apenas use a pasta RELATIVA à posição atual.
Código: Selecionar todos
SET PRINTER TO ( "TEMP\" + CLI + ".PRN" )
Mais fácil simplificar, assim fica sempre mais fácil resolver.
Última observação:
Para o programa executando numa janela console, está visível a pasta atual, será a pasta aonde a janela console foi aberta.
Para um programa rodando com HMG ou outra LIB gráfica, ou por atalho, vai ter que dar atenção às propriedades do atalho, pra garantir que a pasta considerada como atual seja a pasta correta.
O negócio é simplificar.
Pra que configurar pasta de trabalho, se pode fazer isso no atalho, ou no BAT, ou de outra forma.
Deixando pasta atual, vai funcionar em qualquer lugar, até mesmo direto no pen drive.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Set device to printer
Comentário:
Uma das opções que tenho é criar pastas separadas para cada empresa.
O aplicativo só trabalha com a pasta atual.
Então... ao selecionar uma empresa, o aplicativo simplesmente troca de pasta e recarrega.
O aplicativo continua sempre trabalhando com a pasta atual, que depois disso passou a ser a pasta da empresa.
O fonte fica simples e prático.
Dica:
Aqui criei uma função pra arquivo temporário MyTempFile()
Se trabalhar isolado, em rede, em multithread, seja lá como for, é só fazer os ajustes em MyTempFile() e resolver tudo de uma vez.
E se precisar de solução quebra-galho.... só alterar MyTempFile() também.
Pelo menos vai resolver todos os problemas de uma vez, mexendo apenas numa única função.
E assim que se acostumar com funções existentes no Harbour, pode até usar a pasta temporária do próprio Windows, também alterando essa única função.
E se precisasse de ajuda pra arquivo temporário.... seria só postar essa função....
Tudo mais fácil.
REPETINDO:
Não abuse de macro. Tá usando macro até onde não precisa, e que pode esconder erros.
Além disso, o Harbour não aceita algumas macros que o Clipper aceitava, ou complica se compilar usando -w3 -es2
Até em Clipper aceita isto
Não é o Harbour ou o Windows que são diferentes....
É o Clipper que aceitava coisas que não deveriam ser aceitas, e muita gente continua abusando disso, sem perceber que só serve pra atrair problemas.
Uma das opções que tenho é criar pastas separadas para cada empresa.
O aplicativo só trabalha com a pasta atual.
Então... ao selecionar uma empresa, o aplicativo simplesmente troca de pasta e recarrega.
O aplicativo continua sempre trabalhando com a pasta atual, que depois disso passou a ser a pasta da empresa.
O fonte fica simples e prático.
Dica:
Aqui criei uma função pra arquivo temporário MyTempFile()
Código: Selecionar todos
cTmpFile := MyTempFile( "PRN" )
SET PRINTER TO ( cTmpFIle )
...
fErase( cTmpFile )
E se precisar de solução quebra-galho.... só alterar MyTempFile() também.
Pelo menos vai resolver todos os problemas de uma vez, mexendo apenas numa única função.
E assim que se acostumar com funções existentes no Harbour, pode até usar a pasta temporária do próprio Windows, também alterando essa única função.
E se precisasse de ajuda pra arquivo temporário.... seria só postar essa função....
Tudo mais fácil.
REPETINDO:
Não abuse de macro. Tá usando macro até onde não precisa, e que pode esconder erros.
Além disso, o Harbour não aceita algumas macros que o Clipper aceitava, ou complica se compilar usando -w3 -es2
Até em Clipper aceita isto
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 )
É o Clipper que aceitava coisas que não deveriam ser aceitas, e muita gente continua abusando disso, sem perceber que só serve pra atrair problemas.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Set device to printer
Então prezados "asimoes", "jquintas", "andril", "toledo", "pc", "eolo", "itamar" e demais que se interessarem...
O negócio agora já tá no fim de se resolver.
Para usar o IMPRIMERAW que é uma função que usa a Win_PrintFileRaw(), eu preciso da macro substituição, conforme abaixo:
Ou seja, a variável CLI.PRN não me serve, e, sim o conteúdo dela, pois eu poderia muito bem utilizá-la sem problema algum, mas, como o ambiente é em rede, cada usuário do sistema (são 6 computadores usando ao mesmo tempo)... então se usar a variáel CLI.PRN e não o conteúdo dela, o sistema somará tudo e ficarão todos os recibos de clientes diferentes num mesmo lugar.
Então, como farei para usar a substituição, pois pelo que vi o WIN_PRINTFILERAW() não aceita macro substituição.
Essa, tá difícil né?
Ao final, se conseguirem, postarei as alterações que fiz no código (incluindo com imagens gráficas) para que todos usufruam e desfrutem de tudo...

O negócio agora já tá no fim de se resolver.
Para usar o IMPRIMERAW que é uma função que usa a Win_PrintFileRaw(), eu preciso da macro substituição, conforme abaixo:
Código: Selecionar todos
cARQUIVO := "&CLI..PRN"
ImprimeRaw(cARQUIVO)Então, como farei para usar a substituição, pois pelo que vi o WIN_PRINTFILERAW() não aceita macro substituição.
Essa, tá difícil né?
Ao final, se conseguirem, postarei as alterações que fiz no código (incluindo com imagens gráficas) para que todos usufruam e desfrutem de tudo...
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Set device to printer
Na verdade você vai precisar gerar um arquivo com SET PRINTER TO X
e no final da impressão passar o nome do arquivo com o seu caminho para a função ImprimeRaw, só isso.
e no final da impressão passar o nome do arquivo com o seu caminho para a função ImprimeRaw, só isso.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Set device to printer
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)Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Set device to printer
pessoal, vlw...
mas agora, está imprimindo, mas, na hora do HB_RUN ('del &CLI..PRN') ou mesmo no teste HB_RUN ('DEL 0001.PRN') a deleção não está acontecendo.
Pois após imprimir, e, por causa da cláusula ADDITTIVE o arquivo precisa ser excluído.
Estou tentando até mesmo usar o FERASE, conforme, abaixo:
Inclusive, os wait e os ? são minha forma de debugar o código, e o resultado deles, indica que está tudo certo, pois o resultado no RUN-TIME é o que está apresentado em cada linha mesmo após o ***.
Fico no aguardo de mais ideias...
mas agora, está imprimindo, mas, na hora do HB_RUN ('del &CLI..PRN') ou mesmo no teste HB_RUN ('DEL 0001.PRN') a deleção não está acontecendo.
Pois após imprimir, e, por causa da cláusula ADDITTIVE o arquivo precisa ser excluído.
Estou tentando até mesmo usar o FERASE, conforme, abaixo:
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'
waitFico no aguardo de mais ideias...
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Set device to printer
Por que executar um programa externo se você pode usar funções da linguagem:
Confirme por favor cli é a variável que contém 0001..000X e o arquivo gerado é 0001.prn então:
ex.:
cArq:= Cli + ".prn"
SET PRINTER TO &cArq.
fErase(cArq)
Confirme por favor cli é a variável que contém 0001..000X e o arquivo gerado é 0001.prn então:
ex.:
cArq:= Cli + ".prn"
SET PRINTER TO &cArq.
fErase(cArq)
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Set device to printer
bom, está tudo funcionando direitinho (quase, faltam alguns detalhes), mas, gostaria de compartilhar (mesmo que antes do tempo certo) com todos as telas que já estão sendo geradas MIXADAS (digo, CONSOLE e GUI juntas).
A primeira tela abaixo, refere-se ao momento de dar baixa numa prestação que já foi baixada. O sistema pergunta em modo GUI, vejam: A segunda tela - considerando que pressionou sim, aparece a outra pra perguntar se confirma o recebimento. vejam: Agora, as 2 últimas telas são as mais importantes (acho), pois são relacionadas com o tema deste TÓPICO, pois a próxima tela pergunta (em modo GUI) se existe uma impressora LPT1/matricial instalada. Pois pode acontecer dela "fisicamente" existir, mas, estar desligada, travada, sem o cabo, etc. Então, se o usuário responder com SIM não sairá da pergunta até que realmente tenha uma impressora LPTx ligada. Se ela for ligada, a impressão sai normalmente através do TYPE &CLI..PRN. Vejam esta tal tela: Finalmente, se não estiver pronta, antes de cancelar a impressão ou excluir o arquivo &CLI..PRN através do FERASE (que deu certo), o sistema oferece uma última pergunta, vejam: Se a resposta for NÃO, a impressão realmente não sai em local nenhum e o arquivo &CLI..PRN é excluído definitivamente da pasta do sistema.
Mas, se a resposta for SIM (é que todos nós procuramos em clipper - impressão USB), sem grandes testes mais rigorosos, a impressão é direcionada para uma impressora USB, através do WIN_PRINTFILERAW().
No meu caso é uma HP C4280.
Bom, quis compartilhar ainda, mesmo sem estar tudo pronto, pois os companheiros são sempre atenciosos conosco e não podia deixar de lhes mostrar os resultados, mesmo que - como já disse, ainda não estão do jeito que eu preciso, e, acho que todos precisam.
Se alguém se interessar na maneira como estou desenvolvendo - apesar que V.Sas. sabem muito mais que eu, é só falar que explico o pouquinho que estou aprendendo convosco.
Até breve, pois Jesus em breve voltará!
A primeira tela abaixo, refere-se ao momento de dar baixa numa prestação que já foi baixada. O sistema pergunta em modo GUI, vejam: A segunda tela - considerando que pressionou sim, aparece a outra pra perguntar se confirma o recebimento. vejam: Agora, as 2 últimas telas são as mais importantes (acho), pois são relacionadas com o tema deste TÓPICO, pois a próxima tela pergunta (em modo GUI) se existe uma impressora LPT1/matricial instalada. Pois pode acontecer dela "fisicamente" existir, mas, estar desligada, travada, sem o cabo, etc. Então, se o usuário responder com SIM não sairá da pergunta até que realmente tenha uma impressora LPTx ligada. Se ela for ligada, a impressão sai normalmente através do TYPE &CLI..PRN. Vejam esta tal tela: Finalmente, se não estiver pronta, antes de cancelar a impressão ou excluir o arquivo &CLI..PRN através do FERASE (que deu certo), o sistema oferece uma última pergunta, vejam: Se a resposta for NÃO, a impressão realmente não sai em local nenhum e o arquivo &CLI..PRN é excluído definitivamente da pasta do sistema.
Mas, se a resposta for SIM (é que todos nós procuramos em clipper - impressão USB), sem grandes testes mais rigorosos, a impressão é direcionada para uma impressora USB, através do WIN_PRINTFILERAW().
No meu caso é uma HP C4280.
Bom, quis compartilhar ainda, mesmo sem estar tudo pronto, pois os companheiros são sempre atenciosos conosco e não podia deixar de lhes mostrar os resultados, mesmo que - como já disse, ainda não estão do jeito que eu preciso, e, acho que todos precisam.
Se alguém se interessar na maneira como estou desenvolvendo - apesar que V.Sas. sabem muito mais que eu, é só falar que explico o pouquinho que estou aprendendo convosco.
Até breve, pois Jesus em breve voltará!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Set device to printer
WIN_PRINTFILERAW() serve tanto para impressora hp como para epson matricial
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Set device to printer
bom, já que estou só avançando... graças a Deus e a todos deste fórum...
no caso pra mudar toda a configuração de impressão e usar win32prn, vi que tem que refazer todos os comandos. Correto?
Em caso de sim, já vou tentar mudar alguma coisa, começando com um extrato que tem poucas linhas, mas a dúvida são 2:
1ª - qual a diferença mesmo do arquivo .PRN e .TXT?
2ª - no caso de um arquivo .PRN ou .TXT que foi gerado pelo SET PRINTER TO (todas aqui já sabem qual é esse arquivo a que me refiro) 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?
Ou terei, que redesenhá-lo linha por linha dos @prow, traduzindo para WIN32PRN?
vlw
no caso pra mudar toda a configuração de impressão e usar win32prn, vi que tem que refazer todos os comandos. Correto?
Em caso de sim, já vou tentar mudar alguma coisa, começando com um extrato que tem poucas linhas, mas a dúvida são 2:
1ª - qual a diferença mesmo do arquivo .PRN e .TXT?
2ª - no caso de um arquivo .PRN ou .TXT que foi gerado pelo SET PRINTER TO (todas aqui já sabem qual é esse arquivo a que me refiro) 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?
Ou terei, que redesenhá-lo linha por linha dos @prow, traduzindo para WIN32PRN?
vlw
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Set device to printer
Olá microvolution,
A extensão .TXT é um padrão para arquivo de texto, e normalmente usa-se essa extensão para deixar claro que ele é um arquivo que pode ser aberto por um editor com codificação OEM (DOS).
Procure no buscador do fórum por Wn32Prn e também por Win_Prn. Win32Prn() é função do xHarbour. No Harbour chama-se Win_Prn(). A diferença está apenas no nome, os comandos usados são os mesmos. Você encontrará muita coisa, inclusive vários exemplos com essas funções. Penso que melhor seria você estudar alguns exemplos, e ir postando as dúvidas.
A 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?
A extensão .TXT é um padrão para arquivo de texto, e normalmente usa-se essa extensão para deixar claro que ele é um arquivo que pode ser aberto por um editor com codificação OEM (DOS).
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?
Procure no buscador do fórum por Wn32Prn e também por Win_Prn. Win32Prn() é função do xHarbour. No Harbour chama-se Win_Prn(). A diferença está apenas no nome, os comandos usados são os mesmos. Você encontrará muita coisa, inclusive vários exemplos com essas funções. Penso que melhor seria você estudar alguns exemplos, e ir postando as dúvidas.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Set device to printer
opa...
achei este tópico, inclusive iniciado por V.Sa. https://pctoledo.org/forum/viewto ... =4&t=12841
É este mesmo?
estou testando sua rotina e vamos ver no que vai dar.
Se for o tópico correto, responderei por lá mesmo. ok?
Abraços!
achei este tópico, inclusive iniciado por V.Sa. https://pctoledo.org/forum/viewto ... =4&t=12841
É este mesmo?
estou testando sua rotina e vamos ver no que vai dar.
Se for o tópico correto, responderei por lá mesmo. ok?
Abraços!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
- Linguagemclipper
- Usuário Nível 3

- Mensagens: 240
- Registrado em: 16 Abr 2016 17:33
- Localização: Maceió/AL
- Contato:
Set device to printer
Já tentaram usar o SIBRA?
https://www.linguagemclipper.com.br/imp ... pper-excel
Olha os tipos de relatórios que dá pra criar:

https://www.linguagemclipper.com.br/imp ... pper-excel
Olha os tipos de relatórios que dá pra criar:

Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
