Página 1 de 1
Win_PrintFileRaw() com Impressora Samsung
Enviado: 25 Abr 2015 20:53
por eciodias
Estou procurando soluções de impressões.....
Li em uma que o Pablo César postou.....
" Com PrintFileRaw não é garantido a impressão em TODAS as impressoras.
Em alguns modelos de impressoras como: Canon, Samsung, Lexmark, Zebra e outras impressoras especializadas que apenas utilizam drives específicos como para impressão de fotografias, não utilizam o padrão RAW. Daí o Win_PrintFileRaw não funcionará, por isso é recomendado avaliar o retorno da função se retornar -1 é porque a impressora não suporta este padrão para o spooler do WIndows."
Alguém pode me dar uma dica sobre, impressoras Samsung...., pois realmente não esta funcionando com o comando Win_PrintFileRaw(), fui em propriedades da impressora, Avançado e processador de Impressão, testei os modos disponíveis...... NADA.
Não sei se é agravante...., mas a impressora é Wifi.
Obrigado.
Win_PrintFileRaw() com Impressora Samsung
Enviado: 25 Abr 2015 21:54
por Eolo
não utilizam o padrão RAW
Eu nunca usei essa função, talvez vá falar besteira, mas vamos lá.
Por que a função tem o nome RAW (que quer dizer "cru""em inglês)? Deve ser algo cru, pensei, como imprimir caracteres ASCII, sem nenhuma formatação ou o que seja, contrário da impressão de uma foto em pixels ou do uso de negrito, itálico ou de alguma fonte OpenType...
Pensando nisso, consegui do mestre Google o seguinte:
"Raw printing is sending a string of commands to a printer directly in its native language" (raw printing é mandar diretamente para a impressora um string de comandos na sua linguagem própria).
Opa, então não existe um "padrão RAW"? Cada impressora tem sua própria linguagem nativa?
Se isso é verdade e você cria um arquivo com comandos que a impressora não reconhece como nativos e manda pra ela, mesmo usando a PrintFileRaw(), é de se esperar que nada aconteça. A printer não vai saber o que fazer os comandos...
Eu tenho a impressão que se assume, como verdade, que a PrintRawFile() imprime qualquer coisa, mas parece que não é bem assim. A confirmar.
Uma das fontes:
https://www.printnode.com/docs/what-is-raw-printing/
Win_PrintFileRaw() com Impressora Samsung
Enviado: 25 Abr 2015 22:03
por Toledo
eciodias escreveu:pois realmente não esta funcionando com o comando Win_PrintFileRaw()
Amigo, veja esta mensagem:
https://pctoledo.org/forum/viewto ... 734#p95944
Abraços,
Win_PrintFileRaw() para PrintWinPrn()
Enviado: 26 Abr 2015 17:09
por eciodias
Eu passei a usar a então função PrintWinPrn(cArq,cPrint)
Começou com problemas no FORM_A4, procurei a achei a seguinte solução:
1 #include "hbwin.ch"
2 //Trocar FORM_A4 por WIN_DMPAPER_A4
3 oPrn : FormType := WIN_DMPAPER_A4 //FORM_A4
Só que quando uso o HBMK2, vem a seguinte linha de erro:
IMPRIM.PRG(9) Error F0029 Can´t open #include file ´hbwin.ch´
Poderiam me ajudar, por favor?
Obrigado.
Win_PrintFileRaw() com Impressora Samsung
Enviado: 26 Abr 2015 19:19
por Toledo
Amigo, verifique se na sua pasta do Harbour tem uma sub-pasta chamada \CONTRIB\HBWIN, dentro dela tem o arquivo hbwin.ch, então copie este arquivo para a pasta \INCLUDE do seu Harbour.
Abraços,
Win_PrintFileRaw() com Impressora Samsung
Enviado: 26 Abr 2015 20:08
por eciodias
Ok, pensei a que a mensagem de erro na linha...
oPrn : FormType := Win_DmPaper_A4 // FORM_A4
Era a falta do #include "hbwin.ch", não era!
Error BASE/1003 Variable does not. exist: WIN_DMPAPER_A4
Por favor, onde estou errando?
Win_PrintFileRaw() com Impressora Samsung
Enviado: 26 Abr 2015 20:23
por Jairo Maia
Olá Écio,
Quando se usa arquivos CH, é case sensitive, ou seja, se no CH está tudo maiúsculo, em seu PRG também tem que ser maiúsculo. Deve ser EXATAMENTE e não Exatamente igual para que tenha efeito de substituição pelo compilador.
Win_PrintFileRaw() com Impressora Samsung
Enviado: 26 Abr 2015 21:48
por eciodias
Desculpe amigo Jairo, não entendi ?
Copiei o hbwin.ch para a pasta \include e no programa esta: #include "hbwin.ch", então não entendi sua colocação, me esclareça por favor.
Win_PrintFileRaw() com Impressora Samsung
Enviado: 26 Abr 2015 23:26
por Toledo
eciodias escreveu:não entendi sua colocação, me esclareça por favor.
O que o Jairo quis dizer é que as constantes criadas pela diretiva
#define dentro de um arquivo CH é
case sensitive, isto quer dizer, se no arquivo CH está
WIN_DMPAPER_A4 (todas as letras MAIÚSCULAS), então no seu PRG você não pode usar
Win_DmPaper_A4 (letras minúsculas e MAIÚSCULAS juntas).
Então no seu PRG, troque
Win_DmPaper_A4 por
WIN_DMPAPER_A4.
Abraços,
Win_PrintFileRaw() com Impressora Samsung
Enviado: 26 Abr 2015 23:45
por eciodias
Ok....
Muito obrigado, entendi.
Agora procuro alguma referencia para mudar a pagina.... (continuação, folha 2).
Explico...., meu relatório contem 3 paginas, no Clipper, usando deskjet ou Laser, no final do contador de linhas, eu utilizava EJECT, e a impressão começava com o contador zerado e as primeiras linhas o cabeçalho.
Como faço no Harbour?. meu relatório só imprime a primeira folha.... e a impressora informa que foi tudo impresso.
Obrigado.
Win_PrintFileRaw() com Impressora Samsung
Enviado: 27 Abr 2015 07:35
por Toledo
eciodias escreveu:meu relatório só imprime a primeira folha....
Faça a seguinte alteração na função PrintWinPrn():
Procure por:
Código: Selecionar todos
For n := 1 to nLinh
oPrn:Textout(WIN_ansitooem(memoline(cText,,n)),.t.)
Next
e troque por:
Código: Selecionar todos
For n := 1 to nLinh
cLinTxt:=memoline(cText,,n)
n_pag=AT(CHR(12)+CHR(13),cLinTxt)
If n_pag>0
cLinTxt:=LEFT(cLinTxt,n_pag-1)
Endif
oPrn:Textout(WIN_ansitooem(cLinTxt),.t.)
If n_pag>0
oPrn:NewPage()
Endif
Next
Obs.: não testei este código, mas se não errei nada, acho que vai funcionar.
Abraços,
Win_PrintFileRaw() com Impressora Samsung
Enviado: 27 Abr 2015 10:15
por eciodias
Fino do fino, certinho.
Muito agradecido.
Agora, que fechei totalmente o sistema que era em clipper 5.x, Agora em Harbour Modo Console, partirei para o modo gráfico, para um aprendiz..... pode alguém me orientar, como devo iniciar esta nova empreitada?
Tipo construção de telas, para aproveitar totalmente o que já foi feito em modo console.
Mais uma vez, muito obrigado.
Abraços