Página 1 de 2

SOLUÇÃO PARA IMPRESSÃO USB

Enviado: 08 Mai 2007 01:27
por MarcosV
Pesquisei aqui no forum sobre impressão USB... li muita coisa... muitas otimas soluções... mas só achei soluções dependendo de programas externos... como procurava algo mais simples e independente... entaum continuei pesquisando outras fontes e acabei encontrando essa solução... se ja foi postado... desconsiderem!

Vamos lá... pode-se fazer com que um aplicativo DOS rodando em Windows 95/98/2000/XP use a impressora USB “fingindo” que ela está em rede, mesmo em máquinas isoladas. Clique com botão direito sobre o ícone da impressora e escolha “Compartilhamento” da Impressora USB... Na aba “Compartilhamento” marque o botão “Compartilhar esta impressora”, entre na caixa “Nome do compartilhamento” e informe o NOME_DA_IMPRESSORA e clique em OK.

Aí é só mapear assim:

net use lpt1 \\127.0.0.1\[NOME_DA_IMPRESSORA]

Comigo Funcionou em Windows 95/98/2000/XP.

Por favor... postem os resultados.

Enviado: 08 Mai 2007 07:58
por Pablo César
Essa idéia já é conhecida aqui no FORUM, mas Marcos me permita fazer duas observações que se tornam inconvenientes para o uso com do NET USE.

Você nos disse que esta opção pode ser usada "mesmo em máquinas isoladas", você se refere a computadores "stand-alone", isto é: não em rede ?. Eu não obtive sucesso para usar uma impressora USB no próprio PC onde estava instalado. Isto é, não permite que faça-se o mapeamento no proprio PC. Você tem certeza que podes mapear essa impressora na mesma máquina que está instalada ?.

E a segunda questão, é que nem sempre você possue os comandos da impressora. O cliente, nem sempre avisa que está comprando uma nova impressora e daí você se depara com um modelo de impressora que nunca viu. Por isso, utilizo o USB.EXE (do Heveraldo) que mesmo que tenha apenas tres opções de impressão (negrito, condensado, expandido, por exemplo), então daí fica uma coisa mais genérica.

Enfim, esta é a minha opinião e pode ser que outros colegas prefiram outra forma de imprimir, como criar RTF, HTM, impressão gráfica, etc...
Mas que eu gostaria de saber se funciona mesmo na mesma máquina que está instalada/conectada a impressora USB e ainda utilizar-se do NET USE, se isto é possível (comigo não funcionou).

Marcos, gostaria que confirmasse se isso é assim ou seja, você tenha conseguido mapear a si mesmo (me refiro a mesmo PC).

Um clip-abraço :)Pos

Enviado: 08 Mai 2007 10:17
por gvc
Vc terá problema com as impressoras que não tem tabela de caracteres residentes.

Eu usei esse recurso de compartilhar a impressora e mapear a mesma. Funcionou, mas o problema é o mesmo citado acima.

Usando algum programa externo (eu uso o nodosimp.exe), vc usa a configuração do windows para imprimir. Se o usuário trocar de impressora vc não terá que fazer nada para que o sistema ontinue funcionando.

Enviado: 08 Mai 2007 11:13
por sygecom
Tche, e se o Usuario colocar uma impressora nova como fica ? lah vai vc mudar seu sistema para entender a impressora ? o se ele mudar o nome do micro na rede ?......tche o negocio é usar o xHarbour.....a migração é indolor..

Abraços

Enviado: 08 Mai 2007 17:25
por Pablo César
sygecom escreveu:o negocio é usar o xHarbour.....a migração é indolor..
Tá bom Leonardo, você está indicando o xHarbour, mas poderia explicar como acontence a impressão em xHarbour ?. Isto é, poderia dar algum exemplo de como é feito em xHarbour ?. È colocado alguma espécie de TAG ?. Porque se a questão são os comando de impressão, então no xHarbour funciona diferente ?. Mas dê um exemplo colega, para ver se é indolor (como você disse), além da questão de imprimir em USB e os diferentes formatações na impressão (negrito, condesado, expandido, etc...)

Um clip-abraço :)Pos

Enviado: 08 Mai 2007 19:47
por sygecom
Tche, eu postei um exmplo usando a classe win32prn:
https://pctoledo.org/forum/viewtopic.php?t=5764

Abraços
Leonardo Machado

Enviado: 08 Mai 2007 19:53
por sygecom
Tche ...soh pra completar...um outro exemplo bem simples:

Código: Selecionar todos

set printer to ( GetDefaultPrinter() )
set console off
set printer on
set device to print

? 'IMPRIMINDO'

set printer off
set device to screen
set console on
set printer to

Nesse exmplo acima se for uma impressora LX-300 vc pode usar os CHR(15) para condensar e assim por diante !! facil neh !!

Abraços
Leonardo Machado

Enviado: 08 Mai 2007 20:15
por Pablo César
Ok Leonardo, o seu exemplo é demasiado simples e transparente assim como é feito em Clipper. Mas eu me referia a como farias para fazer uma forma UNIVERSAL de comando ?.

Pois a dúvida fica... como será que o Heveraldo fez com respeito a TAG e a impressão que serve para qualquer impressora. Como exemplo: como seria a interpretação da TAG em xHarbour, para fazer expandido numa impressora jato de tinta (por exemplo) ?.

Pelo que estou vendo você iria implementar o comando de TAL impressora na hora de envio de impressão e daí você irá precisar de todas as formas o comando para esse tipo de impressora. Estou certo ?

Tudo bem Leonardo, se você não souber, entendo que estarias começando com xHarbour e quem sabe você possa fazer algum esclarecimento aqui pra nós.

Um clip-abraço :)Pos

Enviado: 08 Mai 2007 20:41
por sygecom
Tche, ele deve ter usada a classe WIN32PRN de uma olhada no exemplo do link que coloquei na seção CODIGO FONTE lah vc vera que eu independente da impressora mando imprimir condesando ou normal....ou seja 136 colunas =condensado ou 80 colunas=normal.

Obs:o Heveraldo deve ter definido seus comandos internos....igual funciona o PRWIN do Vagner.

Abraços
Leoanrdo Machado

Enviado: 08 Mai 2007 20:51
por Pablo César
Então Leonardo seria ssim a interpretação em xHarbour:

Código: Selecionar todos

oPrinter:SetDefaultFont() 
if tamrel > 80 
   oPrinter:setfont('Courier New',,17,,,,255) 
else 
   oPrinter:setfont('Courier New',,11,,,,255) 
endif 
Geralmente é esta tipo de fonte "Courier New" que é o mais aproximado ao caracter em ASCII puro. É interessante, desta forma poderia ser montado uma tabela de tamanho de acordo com o terceiro parâmetro passado no setfont() do xHarbour. Legal, eu tinha visto e acabei esquecendo. Mas era isso que queria que você expusesse pra nós.

Obrigado, "Leoanrdo"... hehe viu que desta vez foi você que erro seu próprio nome... (veja na sua msg anterior) :)Pos

Enviado: 08 Mai 2007 20:56
por sygecom
Tche é isso ai mesmo....

Nossa...errei meu proprio nome.......... :P ....dah um desconto estou a 750KM de casa...cansado,com sono...e cheio de serviço pela frente...

Abraços
Leonardo Machado

Enviado: 08 Mai 2007 21:37
por Pablo César
sygecom escreveu:estou a 750KM de casa...cansado,com sono...e cheio de serviço pela frente...
Meu... você está longe... estarias aqui no Paraná Ahhh já sei você está curtindo as cataratas de Foz de Iguaçú !!!. Mas de todas formas, é dificil estar longe de familia, principalmente longe do teu filhinho...

Muita sorte aí colega !. Vê se descansa !

Um clip-abraço :)Pos

Enviado: 09 Mai 2007 10:39
por sygecom
Tche,eu tava em URUGUAINA...E agora toh em SANTA MARIA...toh desceno o estado e até sexta eu chego em casa....

Abraços
Leonardo machado

Enviado: 10 Mai 2007 17:26
por MarcosV
Olá pessoal...

Obrigado pelas respostas e comentarios de todos... realmente tem esse problema de impressoras que não tem tabela de caracteres residentes... e a troca de impressora do cliente... q é comum... acredito mesmo que não compensa a dor de cabeça.

Pablo... se vc ativar o compartilhamento de uma impressora LOCAL e usar esse comando que mencionei... vc consegue mapear a impressora LOCAL como se fosse uma impressora de rede, na mesma maquina que ela esta instalada... mas tem os casos que foram citados... q vc mesmo mencionou um... e admito... me desanimaram profundamente... e me fez pensar melhor em me dedicar a conhecer um pouco mais do xharbour... se alguem aqui usa o xharbour e quiser dar uma força pra alguem que quer começar... agradeço demais... meu msn é ericdravenbr@hotmail.com

abraços

Enviado: 10 Mai 2007 18:01
por Pablo César
Marcos, você tem inteira razão sobre que a captura funciona no mesmo PC que está instalado (local, digamos), claro que tem que estar compartilhada a impressora. Mas um detalhe muito importante que é bom mencionar para que fique registrado:

Se o nome da impressora compartilhada for EPSON, funciona a captura (testei somente em WIN98) da seguinte forma:

NET USE LPT1 \\127.0.0.1\EPSON

Mas se você tentar:

NET USE LPT1 \\PABLO\EPSON

Desta ultima não funciona, dá o seguinte erro em WIN98:
Erro 2106: Esta operação não pode ser realizada para seu próprio computador;
poderá ser realizada somente em um servidor. Para maiores informações,
contate seu administrador da rede.
Engraçado, por isso que nunca deu certo comigo, pois através o IP, ele faz... vai entender a Microsoft. Mas em outras versões do WINDOWS não testei.

Valeu e fica aqui registrado. E quanto a busca de outra linguagem, é claro que sempre é válido. E nós temos a mão, o xHarbour que parece ser muito conveniente para nós que programamos em Clipper. Mas acredito que suporte do xHarbour, você terá mais sucesso na seção aqui do proprio xHarbour.

Um clip-abraço :)Pos

Obs.: Marcos esse da foto é você ?. Estás tocando gaita ou está apenas limpando o nariz ?? Imagem