Impressão do Clipper em porta USB.

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

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 »

Prezado Marcos,

Fiz testes e encontrei as seguintes observações:

1. No menu de impressoras (mesmo sendo uma), quando é pressionado a tecla <ESC>, simplesmente não sai, fica agurdando uma segunda tecla. Sabe que usuário, gosta de inventar... e a tecla <ESC> pode ser uma opção... (talvez assumir como impressora padrão nesse caso).

2. Quando é indicado como parâmetro a opção /T2 (mensagem janelada), simplesmente não está aparecendo nada para mim. Testei o USPRINT sem o prâmetro de nome_de_arquivo_de impressão.

3. Percebí também que após impressão do conteúdo do arquivo (no meu caso o mesmo postado por mim anteriormente), está EJECTANDO a página. Haveria possibilidade de parar a cabeça de impressão logo após o último caracter ou comando do arquivo ?.
MarcosV escreveu: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...
Você tem toda razão !. É isso mesmo !.
MarcosV escreveu:mas to estudando um jeito pra resolver essa questao!
Acho pouco provável que você consiga nessa questão, porque como você disse, o formato DUPLO (Caixa alta) ocupa +/- duas linhas e não existe comando para retornar linha para atrás... Mas fico impressionado porque funciona bem mesmo colocando os três tipos de formatos na mesma linha.
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.
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 »

Pablo César escreveu:Haveria possibilidade de parar a cabeça de impressão logo após o último caracter ou comando do arquivo ?.
Estás usando uma matricial? Se for, melhor. Você testa na impressora matricial e eu testo na LaserJet. :)
Mas se for matricial mesmo e ela estiver ejetando sem você pedir, parece ser um erro. Mas talvez não seja erro do programa. Afinal, pelo que eu entendi ele está jogando TUDO para o spooler. Se for isso mesmo não se trata exatamente de um erro, mas de uma característica do spooler. Se puder, faça esse mesmo teste com o WAPI. Ele, eu tenho certeza, manda tudo pro spooler.
[]'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 »

Maligno escreveu:Estás usando uma matricial?
Positivo, estou usando a Epson LX 300 (paralela)
Maligno escreveu:Se for, melhor. Você testa na impressora matricial e eu testo na LaserJet.
Feito !
Maligno escreveu:Mas se for matricial mesmo e ela estiver ejetando sem você pedir, parece ser um erro. Mas talvez não seja erro do programa.
Pois é... não é da impressora pois ela pelo comando do DOS quando copio para impressora ela para no lugar sem ejectar a folha.
Maligno escreveu:Se puder, faça esse mesmo teste com o WAPI. Ele, eu tenho certeza, manda tudo pro spooler.
Fiz o teste com WAPI e funcionou corretamente. E como eu disse anteriormente pelo COPY para LPT1 (também funciona corretamente).

Então é erro de programa ou até mesmo alguma limitação do spooler do xHarbour... (sei lá disto eu não posso opinar...)
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.
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 »

Pablo César escreveu:Então é erro de programa ou até mesmo alguma limitação do spooler do xHarbour... (sei lá disto eu não posso opinar...)
Spooler do Xharbour? Existe isso?
[]'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:Maligno... fiz mais alguns ajustes... de uma olhada...
Melhorou bastante. Só tem um detalhe: nem todos os parâmetros são em qualquer ordem. O nome do arquivo precisa ser em primeiro lugar. Nem é tão crítico, até porque isso dá pra sacar de imediato.

Aliás, outro detalhe: nunca se deveria usar como default algo destrutivo. O parâmetro /NODEL é que deveria ser default. Se o usuário quiser apagar realmente, essa iniciativa deveria ser explicitada por ele. Além do que, é sempre possível querer imprimir algo duas ou mais vezes.

Eu próprio nem coloquei apagamento de arquivo de impressão no WAPI. Se o programador quiser apagá-lo, ele terá de fazer isso por sua conta. Aliás, o próprio WAPI, que é embutido, é ainda transiente. Após a função ser executada ele passa a ser descartável e até poderia ser apagado automaticamente. Mas o SET que define isso é por default FALSE. Aliás, tudo em programação deveria ser assim. Exemplo: "quer apagar o registro? Sim ou Não". Se tem dois botões, o default deveria ser "Nã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 »

Oi Pablo,
Pablo escreveu:Fiz testes e encontrei as seguintes observações:

1. No menu de impressoras (mesmo sendo uma), quando é pressionado a tecla <ESC>, simplesmente não sai, fica agurdando uma segunda tecla. Sabe que usuário, gosta de inventar... e a tecla <ESC> pode ser uma opção... (talvez assumir como impressora padrão nesse caso).
Vou disponibilizar logo mais esse ajuste.
Pablo escreveu:2. Quando é indicado como parâmetro a opção /T2 (mensagem janelada), simplesmente não está aparecendo nada para mim. Testei o USPRINT sem o prâmetro de nome_de_arquivo_de impressão.

o paramentro-1, nome do arquivo é obrigatorio... mas fiz um ajuste para aceitar o parametro-4 indipendente do nome do arquivo.
Pablo escreveu:3. Percebí também que após impressão do conteúdo do arquivo (no meu caso o mesmo postado por mim anteriormente), está EJECTANDO a página. Haveria possibilidade de parar a cabeça de impressão logo após o último caracter ou comando do arquivo ?.
Estou estudando esse caso... ainda não encontrei a solução.
MarcosV escreveu:mas to estudando um jeito pra resolver essa questao!
Pablo escreveu:Acho pouco provável que você consiga nessa questão, porque como você disse, o formato DUPLO (Caixa alta) ocupa +/- duas linhas e não existe comando para retornar linha para atrás... Mas fico impressionado porque funciona bem mesmo colocando os três tipos de formatos na mesma linha.
Questão resolvida na proxima atualização que vou disponiblizar logo mais.
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 »

Esqueci de dizer: o programa está aceitando parâmetro inexistente sem reclamar. Exemplo: \XXX.
[]'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 »

Maligno escreveu:Spooler do Xharbour? Existe isso?
hihihi... até parece !... o que eu quiz dizer é a função que deve utilizar a classe win32prn que é o responsável no xHarbour para imprimir em modo console. Mas acho que tudo isto... não vem ao caso e depois de tudo foi você mesmo que me induziu ao erro falando do Spooler... hehe
Se for isso mesmo não se trata exatamente de um erro, mas de uma característica do spooler.
Fui mal. Mal expressado... Imagem
Editado pela última vez por Pablo César em 28 Jun 2007 08:59, em um total de 1 vez.
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 »

Maligno escreveu:Melhorou bastante. Só tem um detalhe: nem todos os parâmetros são em qualquer ordem. O nome do arquivo precisa ser em primeiro lugar. Nem é tão crítico, até porque isso dá pra sacar de imediato.
Realmente Maligno, o parametro-1, nome do arquivo resolvi manter como obrigatorio.
Maligno escreveu:Aliás, outro detalhe: nunca se deveria usar como default algo destrutivo. O parâmetro /NODEL é que deveria ser default. Se o usuário quiser apagar realmente, essa iniciativa deveria ser explicitada por ele. Além do que, é sempre possível querer imprimir algo duas ou mais vezes.
Vc está certo... deixei /NODEL como padrão (Proxima Atualizacao).
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:Realmente Maligno, o parametro-1, nome do arquivo resolvi manter como obrigatorio.
Ah, sim. Obrigatório ele tem de ser mesmo. Eu me referia apenas à posição dele na lista de parâmetros. Se bem que, como eu disse, isso é o de menos. :)
[]'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 »

Pablo César escreveu:hihihi... até parece !... o que eu quiz dizer é a função que deve utilizar a classe win32prn que é o responsável no xHarbour para imprimir em modo console.
Há uma classe pra serviços de impressão? Se bem me lembro, há um conjunto de funções Contrib para manipular impressão e enviar um arquivo para o spooler do Windows.
[]'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
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Maligno escreveu:
Pablo César escreveu:hihihi... até parece !... o que eu quiz dizer é a função que deve utilizar a classe win32prn que é o responsável no xHarbour para imprimir em modo console.
Há uma classe pra serviços de impressão? Se bem me lembro, há um conjunto de funções Contrib para manipular impressão e enviar um arquivo para o spooler do Windows.
Sim Maligno, o xharbour tem uma Classe win32prn direcionada somente para impressão, tem tb. impressão de baixo nivel...

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
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 »

Iiiiiii lá vem o Maligno outra vez.... eu acho melhor não ficar se desgastando com conceitos e terminologias. Eu entendo que é até bom haver alguns conceitos (sempre que não sejam tão extensivos) do xHarbour aqui. Pois isto ajuda a nos aproximarmos cada vez mais da linguagem (e se falarem que não é linguagem... vou brigar !!!). No entanto acho pouco conexo ao título deste tópico com detalhes, meramente conceituais. Por favor Maligno !.

Agora falando sério: eu gostaria dar mais outra contribuição de idéia ao colega MarcosV (por não dizer sugestão/crítica). Me desculpe colega se na minha exposição, eu estiver fazendo comparações. Mas acho que o seu produto está muito bom e pode ficar melhor ainda com a experiência do colega Heveraldo nos passou e gostaria saber Marcos, se a sua aplicação poderia ser também do seguinte jeito ?:
Eu gostei o exemplo do aplicativo USB.EXE que permite alterar como (em forma de STRING) as TAGs que servirão para subtituição.
Para você entender melhor, leia o final desta mensagem ( Por favor aqui ) da qual fala sobre substituição definição de TAGs. Também eu teria adicionar que você poderia definir alí o que o usuário gostaria como "padrão".

Desculpe novamente, fazer comparações e creio que você mesmo nos há dado lugar a que possamos fazer nossas críticas/sugestões.

E sobre este tema:
Pablo escreveu:Acho pouco provável que você consiga nessa questão, porque como você disse, o formato DUPLO (Caixa alta) ocupa +/- duas linhas e não existe comando para retornar linha para atrás... Mas fico impressionado porque funciona bem mesmo colocando os três tipos de formatos na mesma linha.
MarcosV escreveu:Questão resolvida na proxima atualização que vou disponiblizar logo mais.
Parabéns !. Não pensei que pudesse resolver.
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.
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 »

Pablo César escreveu:Iiiiiii lá vem o Maligno outra vez.... eu acho melhor não ficar se desgastando com conceitos e terminologias.
Você está completamente equivocado. Não comentei conceito algum. Apenas fiz uma simples pergunta. Não sabia que havia uma classe no Xharbour dedicada à impressão. Fiquei curioso. Só isso.

E se tivesse comentado acerca de algum conceito, certamente este não seria um comentário perdido. Ele se prestaria a nos enriquecer ainda mais, e também àqueles que silenciosamente acompanham a thread.
[]'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 »

Antes de Mais nada... todas Sugetões e Comentários são bem vindos numa boa... e com certeza irão ser analizados... Sem stress!!! :-)

Correções USBPRINT:
1. Resolvido Problema com o comando Expandido que estava encobrindo linha anterior.
2. Parametro: /T1/T2/T3... Aceitando sem informar o nome do arquivo, nos restantes dos parametros é obrigatorio informar o nome arquivo como primeiro parametro.
3. Parametro: NÃO Apagar Arquivo Impresso (como Padrao) [Sugestão Maligo].
4. Verficação de Parametro Incorreto [Sugestão Maligo].
5. Alteração para Aceitar tanto comandos quanto TAGs [Sugestão Pablo]
6. Parametro: /SEL... Lista de Impressoras em Ordem Alfabetica.

Maligno: o Parametro: Nome do Arquivo para Impressao é Obrigatorio e tb achei interessante que seja informado por primeiro (como obrigatório).
Pablo: Estou estudando o caso de não avançar a pagina se não existir o comando eject... talvez seja uma limitação da propria classe win32prn... mas ainda estou verificando... se exisir um jeito... farei essa alteração.

USBPRINT
Editado pela última vez por MarcosV em 28 Jun 2007 22:03, em um total de 1 vez.
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