Impressão com o usb.exe
Moderador: Moderadores
-
José Luiz
- Usuário Nível 1

- Mensagens: 18
- Registrado em: 15 Mar 2008 17:19
- Localização: São Carlos - SP
Impressão com o usb.exe
Caros amigos, tenho um sistema desenvolvido em clipper 5.2 que está em rede, usando windows xp, com impressoras laser na rede. Estou usando o usb.exe do Santo Heveraldo, mas está imprimindo uma folha após o relatório com alguns caracteres. Não consigo resolver esse problema. A rotina é a seguinte:
do while .t.
if isprinter()
do impterm1
texto do relatório
do impterm2
else
aviso2("LIGUE A IMPRESSORA E TECLE <<<ENTER>>>...")
loop
endif
enddo
*********
PROCEDURE impterm1
aviso("GERANDO RELATàRIO. AGUARDE...")
set console off
set print to impterm.txt
set print on
set device to print
RETURN
**********
PROCEDURE impterm2
set print off
set print to
set console on
set device to screen
aviso("I M P R I M I N D O...")
run usb impterm.txt
close all
RETURN
[/code]
do while .t.
if isprinter()
do impterm1
texto do relatório
do impterm2
else
aviso2("LIGUE A IMPRESSORA E TECLE <<<ENTER>>>...")
loop
endif
enddo
*********
PROCEDURE impterm1
aviso("GERANDO RELATàRIO. AGUARDE...")
set console off
set print to impterm.txt
set print on
set device to print
RETURN
**********
PROCEDURE impterm2
set print off
set print to
set console on
set device to screen
aviso("I M P R I M I N D O...")
run usb impterm.txt
close all
RETURN
[/code]
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
José Luiz, execute o USB sem parâmetro na linha de comando e verifique o conteúdo das variáveis que compõe o USB.MEM, teriam que ser mais ou menos assim:
Senão faça algo mais simples, delete o USB.MEM que o USB.EXE irá criá-lo novamente. Se o problema persistir, poste para nós o conteúdo das letras que está imprimindo a mais.
Código: Selecionar todos
VM_CCANCEL Tam 20 Tipo C "[CANCELANEGRITO]"
VM_CCOMPRI Tam 20 Tipo C "[COMPRIMIDO]"
VM_CEXPAND Tam 20 Tipo C "[EXPANDIDO]"
VM_CFILE Tam 12 Tipo C "*.PRN"
VM_CNEGRIT Tam 20 Tipo C "[NEGRITO]"
VM_CNORMAL Tam 20 Tipo C "[NORMAL]"
VM_NCOMPRI Tam 9 Tipo N 8
VM_NEXPAND Tam 9 Tipo N 18
VM_NNORMAL Tam 9 Tipo N 11
VM_NTEMPO Tam 9 Tipo N 5
VM_PRN Tam 12 Tipo C "Impressora instalada no Windows"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.
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.
- rosalvo rosa
- Usuário Nível 3

- Mensagens: 156
- Registrado em: 10 Jan 2006 19:21
- Localização: Curitiba - PR
-
José Luiz
- Usuário Nível 1

- Mensagens: 18
- Registrado em: 15 Mar 2008 17:19
- Localização: São Carlos - SP
USB
Pablo, fiz a substituição das macros de fonte no usb para ficar igual ao que eu uso no meu sistema e alterei também o tamanho das fontes. Ficou assim: "normal" tamanho 11, "condensado" tamanho 9, "expande" tamanho 14 e "negriton" para negrito. Está funcionando as configurações das fontes, porém, após a impressão do relatório a impressora imprime outra folha com o caracter no canto superior esquerdo.
Rosalvo, só chamo ele com o run.
Rosalvo, só chamo ele com o run.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Eu acho que se você quiser fazer uma LIB, acredito que daria um pouco de trabalho, mas seria possível na teoria. Por acaso você chegou ver o processo que o Maligno inventou para conseguir uma .LIB através de um aplicativo .EXE ?. Se tiver interesse, baixe a ultima a ultima versão do WAPI e veja a documentação na pasta WAPI2LIB.rosalvo rosa escreveu:como faço para linkar o usb.exe no meu sistema ?
Esta forma é a que mais é usada, pode também ser usado o SWPRUNCMD se for linkado com o BLINKER.ou só chamo ele com o Run ?
Além disso teria mais duas formas de se fazer uso do USB.EXE:
1. No meu caso que meu sistema é modular, isto é, tenho um executável para cada opção de menu e é gerenciado por um arquivo BATCH principal. Então suponhamos que usuário entra em relatórios manda imprimir e ao invés de imprimir direto na impressora você direciona sempre para arquivo .PRN (por exemplo). Daí na saída desse aplicativo através de um arquivo BATCH você chama o USB.EXE. Veja o exemplo do arquivo em lote:
Código: Selecionar todos
RELATORIO.EXE
IF EXIST LISTA1.PRN USB.EXE LISTA1.PRN CHR(127) equivale o BackSpace. Talvez algum comando que você tenha passado para esse arquivo e que não conseguiu interpretar e experimenta a não dar o CHR(12) ou EJECT no final do relatório. Talvez seja isso.José Luiz escreveu:após a impressão do relatório a impressora imprime outra folha com o caracter no canto superior esquerdo.
José Luiz, antes de chamar o:
Código: Selecionar todos
run usb impterm.txt 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.
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.
-
José Luiz
- Usuário Nível 1

- Mensagens: 18
- Registrado em: 15 Mar 2008 17:19
- Localização: São Carlos - SP
Nã consegui resolver
Pablo, ainda continua o problema. Não sei como resolver. Vou tentar desde o começo para ver se encontro o problema. Obrigado.
Carissimos,
O USB.EXE não consegue sobrepor impressão e acaba realizando um EJECT.
Talvez seja isso.
Qualquer dúvida, entrem em contato!
Ah! Tem uma versão nova, onde eu poderia postar?
Abraços,
Heveraldo@msn.com
O USB.EXE não consegue sobrepor impressão e acaba realizando um EJECT.
Talvez seja isso.
Qualquer dúvida, entrem em contato!
Ah! Tem uma versão nova, onde eu poderia postar?
Abraços,
Heveraldo@msn.com
Se quiser, me mande por eMail que disponibilizo no meu site. 
Endereço: news(ARROBA)buzinello.com
Endereço: news(ARROBA)buzinello.com
[]'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!
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!
-
danielrxavier
- Usuário Nível 1

- Mensagens: 4
- Registrado em: 16 Abr 2007 22:55
Não sei se estou falando besteira pois não sou fera como esse pessoal.
Mas quando a impressora no cliente é usb e o windows é XP, eu compartilho a impressora e faço um .bat para antes de chamar meu prog, mapear a lpt1 para a impressora compartilhada.
EX do arquivo .bat:
net use lpt1 \\nomedomicro\nomedocompartilhamentodaimpressora
meuprog.exe
Mas quando a impressora no cliente é usb e o windows é XP, eu compartilho a impressora e faço um .bat para antes de chamar meu prog, mapear a lpt1 para a impressora compartilhada.
EX do arquivo .bat:
net use lpt1 \\nomedomicro\nomedocompartilhamentodaimpressora
meuprog.exe
Nunca testei, até porque uso a LIB WAPI. Mas já vi darem essa mesma dica. Não acho muito prático, mas se funciona bem, melhor. 
[]'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!
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!
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Sim esta é outra saída que pode ser utilizada, no entanto (não sei se em XP é possível) capturar a impressora para LPT1 quando a impressora está conectada à própria estação. Pelas tentativas que eu fiz (não fiz em XP) isto não era possível capturar em LPT1 quando a impressora estava conectada naquela mesma estação. Dá uma mensagem que não é possivel instalar nessa estação no momento de instalação da impressora.danielrxavier escreveu:quando a impressora no cliente é usb e o windows é XP, eu compartilho a impressora e faço um .bat para antes de chamar meu prog, mapear a lpt1 para a impressora compartilhada.
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.
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.
-
danielrxavier
- Usuário Nível 1

- Mensagens: 4
- Registrado em: 16 Abr 2007 22:55
Isso NAO funciona, se for impressora com cabo USB conectado a rede.danielrxavier escreveu:Não sei se estou falando besteira pois não sou fera como esse pessoal.
Mas quando a impressora no cliente é usb e o windows é XP, eu compartilho a impressora e faço um .bat para antes de chamar meu prog, mapear a lpt1 para a impressora compartilhada.
EX do arquivo .bat:
net use lpt1 \\nomedomicro\nomedocompartilhamentodaimpressora
meuprog.exe
Abraços
Há quem diga que funciona em kernel NT. E se alguém disse isso é porque deve ser verdade. Talvez você tenha algum problema na sua rede que o impossibilite de usar esse recurso. Ou você está falando de Windos não-NT?
[]'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!
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!
Eu já usei captura de USB para LPT1.
O principal problema é que algums impressoras não tem caracter residente, ou seja, não imprimem diretos usando DOS/LPT1.
Essas impressoras só usam impressão "gráfica".
O principal problema é que algums impressoras não tem caracter residente, ou seja, não imprimem diretos usando DOS/LPT1.
Essas impressoras só usam impressão "gráfica".
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
{POG - Programação Orientada a Gambiarra}


