Imprimir direto na porta USB

774 views
Skip to first unread message

Gustavo Almeida

unread,
Jul 29, 2010, 9:58:28 AM7/29/10
to .NET
Pessoal,
 
Tem como enviar "texto puro" direto pra uma impressora USB, sem ser com driver ou dll's da impressora?
 
Se eu fizer isso, por exemplo:
 

Dim I As IO.File
I.WriteAllText(
"PRN", "TESTE DE TEXTO")
Ele vai imprimir em texto puro a frase "TESTE DE TEXTO".
Mas somente se a impressora usar aquele cabo na porta LPT.
Impressora com cabo USB não imprime.
 
Óbvio que pro caso da USB, eu troco o PRN pela porta USB da impressora ("USB000", "USB001" etc...)
Mas mesmo assim, não imprime.
 
Existe algum comando que eu envio texto puro, direto para a impressora USB?

Paulo S. M. Marques

unread,
Jul 29, 2010, 10:05:18 AM7/29/10
to dotn...@googlegroups.com
Cara, no linux, da p/ fazer algo como:

echo "Teste " > /dev/lpt1

No windows, acho que funciona assim tambem, remova apenas p /dev/ !



2010/7/29 Gustavo Almeida <gus...@gmasoftwares.com.br>
--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."
 
==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail do Grupo: list...@googlegroups.com



--
Atenciosamente,

Paulo S. M. Marques - @psmarques
Analista de Sistemas
MCP / MCTS Web

Gustavo Almeida

unread,
Jul 29, 2010, 10:08:31 AM7/29/10
to dotn...@googlegroups.com
Mas não é na LPT...
 
É na USB.
Na LPT funciona sem problemas...
 
Ah, e estou usando VB.NET em projeto Windows Forms.

Paulo S. M. Marques

unread,
Jul 29, 2010, 12:03:02 PM7/29/10
to dotn...@googlegroups.com
Tenta aí amigão...

Na hora de escrever, use o tipo BYTE, o streamwriter tem um método p/ isso!


StreamReader fPipeIn = new StreamReader(WinAPIWrapper.GetFileStreamFromGuid(DeviceGuid, @"\PIPE00"));
StreamWriter fPipeOut = new StreamWriter(WinAPIWrapper.GetFileStreamFromGuid(DeviceGuid, @"\PIPE01"));

// At this point I can do fPipeIn.ReadLine() and it works very well

// Create the data to send to the device
int command = 11;
byte[] data = new byte[1]{(byte)command};

// This method does NOT work. Why? fPipeOut is set to AutoFlush by the way
fPipeOut.Write(data);

// This method, accessing the Windows API WriteFile function directly with the FileStream.SafeFileHandle, works just fine
WinAPIWrapper.WriteToStream((FileStream)fPipeOut.BaseStream, data);



2010/7/29 Gustavo Almeida <gus...@gmasoftwares.com.br>
Reply all
Reply to author
Forward
0 new messages