Impressão do Clipper em porta USB.

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Acho que foram +/- umas 4 mensagens. Mas dei uma olhada (+/-) nas demais threads, e não me pareceu que falta alguma coisa. Acho que foi só nesta aqui.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

MENSAGEM QUE TINHA SIDO PERDIDA
MarcosV escreveu:blz maligno... mas não deixe de dizer sua opnião... é muito valida pra mim...
Darei minha opinião. Mas só à noite (leia-se madrugada) vou testar.
antes de resolver desenvolver o USBPRINT... testei todas formas que encontrei (tenho uma pasta com dezenas de "soluções" )... mas nenhuma foi do jeito que eu precisava... o unico programa que funcionou melhor pra mim... foi o DOSPRINTER... mas é pago...
Se você gosta do que o DOSPrinter oferece, faça a mesma coisa ou algo melhor, sem se preocupar se vai demorar ou se é muito complicado. É claro que, se houver urgência em adotar uma solução pra esse problema, use o que está mais à mão. Depois, com o tempo, você desenvolve sua própria solução, talvez até melhor que o DOSPrinter. No mínimo, você vai aprender bastante.
é a tradução dos codigos das impressoras matriciais (por enquanto só aqueles do Help)... uso normal/condensado/expandido na mesma linha...
Isso até já tinha comentado com o Pablo. Particularmente eu não preciso de nada muito rebuscado. Até porque estou pra abandonar o Clipper. Em outra ferramenta eu já tenho um ótimo gerador de relatórios. Mas no WAPI eu decidi mandar para o spooler o arquivo de impressão no modo RAW mesmo. Isso porque eu penso que fica mais fácil e organizado manter uma LIB de abstração para esses comandos de de impressão. Um exemplo muito simples:

Código: Selecionar todos

Print(PRow()+1,0, _kPRT_STROKE_BOLD + "TESTE"+;
                  _kPRT_STROKE_THIN )
A função de impressão recebe a string e a direciona para um arquivo ou diretamente para LPT (se for nota fiscal). Se arquivo, poderá ir pro spooler ou pra um preview. Os símbolos de stroke bold/thin são substituídos conforme a impressora definida pelo usuário. Se LaserJet uso PCL5e. Se matricial Epson, uso ESC/P. Claro que se a impressão for pra um preview, nada será embutido na string.
Acho que esta forma de trabalho me deixa bem tranqüilo. O código fica limpo e cumpre sua finalidade perfeitamente, o que justifica não fazer tradução alguma no WAPI.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

MarcosV escreveu:blz maligno... mas não deixe de dizer sua opnião... é muito valida pra mim...
Aliás, não deu tempo pra testar. Isto é, quando fui querer fazer um teste, meus olhos não queriam abrir mais. Eram 6 da manhã. Mas testo depois. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

MarcosV escreveu:Favor postar os resultados
Parabéns Marcos pelo sua decisão de compartilhar conosco a sua contribuição que ajudará a quebrar mais um dos paradigmas do Clipper...

Testei com uma Epson LX300 (não tenho impressora USB) e testei com a seguinte sintaxe:

USBPRINT TESTE.TXT /DEF /NODEL

O conteúdo do arquivo TESTE.TXT E´:

Código: Selecionar todos

☼ TESTE
♫ TESTE
↕ TESTE

☼ TESTE ♫ TESTE ↕ TESTE
O teste funcionou muito bem podendo ser perfeito a não ser pela questão que ignorou a primeira linda do arquivo (que era para ter imprimido a palavra "TESTE" condensado/comprimido, mas essa 1ª linha foi ignorada.

O que me sorprendeu, é que mesmo havendo vários comandos numa mesma linha, ele faz a impressão de acordo o comando de impressão que antecede ( CHR(15), CHR(14) E CHR(18) ) oque acho que não acontecia com o USB do Heveraldo.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
MarcosV
Usuário Nível 3
Usuário Nível 3
Mensagens: 106
Registrado em: 15 Jun 2005 20:37
Localização: Sorocaba/SP

Mensagem por MarcosV »

Valew Pablo... sobre o USBPRINT... estou aberto a sugestoes... para dar uma força para quem esta com esse tipo de limitação com o clipper... o erro que comentou... é o seguinte... não foi ignorado a primeira linha... quando voce usou o CHR(14) na segunda linha... a impressao da segunda linha encobriu a primeira... nas minhas impressoes naum tive problema com isso... mas to estudando um jeito pra resolver essa questao!

USBPRINT
Marcos Villela
x[H]arbour.org (CVS) | GtWvW+HwGui (CVS) | HbMake | Dbf | Rdd DbfCdx | LeToDb (CVS) (Implantando)
===============================================================
“Quem nunca dormiu à noite e acordou de repente, suando frio e chorando, chorando e
chorando? Se isso lhe aconteceu, então você foi apanhado pelo blues.” (Robert Johnson)
Sweet Home Chicago (Versão Blind Bulldog Blues): www.youtube.com/watch?v=J-V61vQTSZs
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Testei o programa, de acordo com o novo link que você acabou de postar. Não instalei a LX-300 que tenho aqui. Usei a HP LaserJet 1022. A saída para o spooler funcionou perfeitamente. Mas como era de se esperar, o código para "expandido" fez as letras ficarem sobrepostas. A LaserJet aceita o código, mas isso exigiria também uma redefinição das entrelinhas. Até aí normal. O programa está crescendo e a coleção de códigos de impressão vai aumentar bastante.

O que eu acho que pega é que, dependendo da combinação dos parâmetros de linha, dá o erro "Não é possível criar a impressão". Se eu definir /NODEL, obrigatoriamente tenho que informar qual impressora. Imagino que você deva ter feito o programa de forma que ele já pressupõe que os argumentos estão na ordem correta. Acho que seria uma boa idéia identificar os parâmetros. Exemplo: -P:<printer>. Se seu programa encontrar o sufixo -P:, você já sabe que uma impressora será definida. Com os demais parâmetros também. Isso não só facilita o seu trabalho de codificação, como também dá ao usuário a liberdade de informar os argumentos na ordem que quiser.

Outro detalhe: como o programa será utilizado primordialmente de dentro de outro programa, acho que as telas são desnecessárias. Acho que seria mais prático você criar uma interface qualquer que lhe permita se comunicar com o programa executor. Ou então, pelo menos, um switch a mais para "desligar" essa interface por janelas. Ou, melhor ainda: um switch que permita o usuário escolher o modo da interface: se por janela, como é agora, por texto em linha ou o "silêncio" no vídeo, com uma comunicação por outro meio (arquivos).
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
MarcosV
Usuário Nível 3
Usuário Nível 3
Mensagens: 106
Registrado em: 15 Jun 2005 20:37
Localização: Sorocaba/SP

Mensagem por MarcosV »

Opa... Valew pelas sugestoes Maligno... quanto a interface... fiz meio rapidão... queria ver como ia ser a aceitação e se realmente iria ajudar o pessoal aqui do forum... se realmente o pessoal se interessar... vou pegar mais com tempo para fazer algumas melhorias...

Achei muito boa sua sugestao sobre os parametros... quando estava desenvolvendo... ja imaginei que poderia confundir... uma duvida... quais as telas que vc comentou? a tela de ajuda ou a tela para selecionar impressoras? se for a tela para selecionar impressora... la tem dois parametros: o '/SEL' (que o programa assume como padrao)... nesse modo realmente abre a uma janela com as impressoras instaladas... mas vc tb pode informar como paramentro: '/DEF' (impressora Default / Padrao) ou ainda informar o nome da impressora... ai fica transparente... naum irá aparecer nenhuma tela.
Marcos Villela
x[H]arbour.org (CVS) | GtWvW+HwGui (CVS) | HbMake | Dbf | Rdd DbfCdx | LeToDb (CVS) (Implantando)
===============================================================
“Quem nunca dormiu à noite e acordou de repente, suando frio e chorando, chorando e
chorando? Se isso lhe aconteceu, então você foi apanhado pelo blues.” (Robert Johnson)
Sweet Home Chicago (Versão Blind Bulldog Blues): www.youtube.com/watch?v=J-V61vQTSZs
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

MarcosV escreveu:quais as telas que vc comentou?
Todas elas. Eu acho que elas não seriam necessárias. A não ser que você, por exemplo, colocasse o programa no tray e ali ele fosse configurado, a exemplo do que é feito em outros programas.
la tem dois parametros: o '/SEL'...
Sim, eu vi o help. Mas a idéia era fazer todas sumirem, opcionalmente. Se o usuário quiser, tudo bem.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
MarcosV
Usuário Nível 3
Usuário Nível 3
Mensagens: 106
Registrado em: 15 Jun 2005 20:37
Localização: Sorocaba/SP

Mensagem por MarcosV »

Oi Maligno... agora entendi a idéia... não tinha pensado nisso... realmente vc esta certo... e tanta preocupaçao com o usuario final... que acabei me enpolgando... e naum vi o outro lado... esse programa naum sera usado pelo usuario final... vou alterar isso sim.. ou melhor vou ate usar oque vc disse... uma opcao para ligar e desligar a interface... registrado!!!

Valew
Marcos Villela
x[H]arbour.org (CVS) | GtWvW+HwGui (CVS) | HbMake | Dbf | Rdd DbfCdx | LeToDb (CVS) (Implantando)
===============================================================
“Quem nunca dormiu à noite e acordou de repente, suando frio e chorando, chorando e
chorando? Se isso lhe aconteceu, então você foi apanhado pelo blues.” (Robert Johnson)
Sweet Home Chicago (Versão Blind Bulldog Blues): www.youtube.com/watch?v=J-V61vQTSZs
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Ótimo. Então, só pra complementar para os colegas que por ventura não tenham "pescado" a idéia, vou fazer uma analogia simples. Quando você faz uma função de programação, é normal que seja feita uma crítica sobre os argumentos de entrada. Mas você precisa saber o quão boa essa crítica precisa ser. O melhor é fazer apenas o básico senão essa crítica acabará consumindo a maior parte do seu esforço e tempo. O usuário é um programador. Ele tem que saber passar os argumentos corretamente. Isso é problema dele. Não seu.

No seu programa é a mesma coisa. O usuário é um programador. Não precisa de janela alguma. Até nem seria necessário reorganizar os parâmetros colocando nomes neles, mas isso é até bom. Primeiro que aquele que for usar o programa não precisará se lembrar da ordem desses switches. Segundo, e mais importante: nomear os parâmetros facilita bastante sua lógica de codificação.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
MarcosV
Usuário Nível 3
Usuário Nível 3
Mensagens: 106
Registrado em: 15 Jun 2005 20:37
Localização: Sorocaba/SP

Mensagem por MarcosV »

Legal Maligno... fiz alguns ajustes... de uma olhada...

Correções USBPRINT:
1. parametros em qualquer ordem
2. parametro 4 - mensagens (ver ajuda)

USBPRINT
Editado pela última vez por MarcosV em 28 Jun 2007 22:03, em um total de 5 vezes.
Marcos Villela
x[H]arbour.org (CVS) | GtWvW+HwGui (CVS) | HbMake | Dbf | Rdd DbfCdx | LeToDb (CVS) (Implantando)
===============================================================
“Quem nunca dormiu à noite e acordou de repente, suando frio e chorando, chorando e
chorando? Se isso lhe aconteceu, então você foi apanhado pelo blues.” (Robert Johnson)
Sweet Home Chicago (Versão Blind Bulldog Blues): www.youtube.com/watch?v=J-V61vQTSZs
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Baixei este ZIP, mas o arquivo EXE é igual ao anterior. Não mudou nada. Tem certeza que atualizou o ZIP corretamente?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
MarcosV
Usuário Nível 3
Usuário Nível 3
Mensagens: 106
Registrado em: 15 Jun 2005 20:37
Localização: Sorocaba/SP

Mensagem por MarcosV »

ué... estranho... fiz o teste aqui e baixou certinho... mas por via das duvidas atualizei denovo!!! tente novamente!!!
Marcos Villela
x[H]arbour.org (CVS) | GtWvW+HwGui (CVS) | HbMake | Dbf | Rdd DbfCdx | LeToDb (CVS) (Implantando)
===============================================================
“Quem nunca dormiu à noite e acordou de repente, suando frio e chorando, chorando e
chorando? Se isso lhe aconteceu, então você foi apanhado pelo blues.” (Robert Johnson)
Sweet Home Chicago (Versão Blind Bulldog Blues): www.youtube.com/watch?v=J-V61vQTSZs
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Ok. Agora deu certo. Talvez seja problema no meu IE. :)

Vou dizer o que achei errado. Notei algumas falhas na interface. A primeira é o help. Ainda é uma janela. Lembre-se: o usuário é um programador. A ajuda em janela não ajuda. :) Porquê? Por um motivo bem simples. Se executo em linha de comando sem parâmetro algum, é porque esqueci do nome de um switch. Vejo a ajuda. Dou ESC e não vejo mais a ajuda. Ela desaparece. Lá vou eu acioná-la de novo. Entendeu? É um incômodo. No seu lugar eu faria essa parte em linha de comando, a exemplo do que existe na maior parte dos programas de linha de comando: BCC, TLIB, Clipper, XHarbour, etc. Ninguém faria uma janela para ver a ajuda. Ela só atrapalha.
Aliás, execute um desses programas de linha de comando e observe como sua interface é montada. Parece coisa simples, mas note que é quase um padrão em todos os programas desse tipo. E se eles fazem assim, é porque deve ser melhor. Analisando detidamente você verá que é melhor mesmo.

Outro problema: se eu digitar /XXX, que é um nome de switch inexistente, o programa prossegue normalmente, sem reclamar. Não deveria ser possível prosseguir, neste caso.

Notei que /DEL não está funcionando. Inclusive, seu help está omisso no switch que informa que o chaveamento da interface é T1, T2 ou T3. Faltou informar que tem uma barra como prefixo: /T1, /T2 ou /T3.

Depois, se puder, elimine a caixa de seleção de impressoras quando eu tiver selecionado /T3. Não havendo impressora definida, opte por silenciar ou imprimir diretamente para a impressora default.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
MarcosV
Usuário Nível 3
Usuário Nível 3
Mensagens: 106
Registrado em: 15 Jun 2005 20:37
Localização: Sorocaba/SP

Mensagem por MarcosV »

Maligno... fiz mais alguns ajustes... de uma olhada...

Correções USBPRINT:
1. Parametros em qualquer ordem
2. Parametro 4 - mensagens (ver ajuda)
3. Correção no Help
4. Impressora Default como Padrao
5. Apagar Arquivo Impresso como Padrao
5. Modo Texto como Padrao

USBPRINT
Marcos Villela
x[H]arbour.org (CVS) | GtWvW+HwGui (CVS) | HbMake | Dbf | Rdd DbfCdx | LeToDb (CVS) (Implantando)
===============================================================
“Quem nunca dormiu à noite e acordou de repente, suando frio e chorando, chorando e
chorando? Se isso lhe aconteceu, então você foi apanhado pelo blues.” (Robert Johnson)
Sweet Home Chicago (Versão Blind Bulldog Blues): www.youtube.com/watch?v=J-V61vQTSZs
Responder