Página 4 de 12
Enviado: 27 Jun 2007 19:03
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.
Enviado: 27 Jun 2007 19:12
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.
Enviado: 27 Jun 2007 20:21
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...)
Enviado: 27 Jun 2007 21:08
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?
Enviado: 28 Jun 2007 06:42
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".
Enviado: 28 Jun 2007 08:52
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.
Enviado: 28 Jun 2007 08:54
por Maligno
Esqueci de dizer: o programa está aceitando parâmetro inexistente sem reclamar. Exemplo: \XXX.
Enviado: 28 Jun 2007 08:57
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...

Enviado: 28 Jun 2007 08:57
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).
Enviado: 28 Jun 2007 09:02
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.

Enviado: 28 Jun 2007 09:07
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.
Enviado: 28 Jun 2007 09:30
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
Enviado: 28 Jun 2007 10:02
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.
Enviado: 28 Jun 2007 10:13
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.
Enviado: 28 Jun 2007 11:03
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