Printer.Print

17/05/2005 - 22:59 por Irak Rubio | Informe spam
Hola que tal grupo.
Pues con la novedad de que necesito enviar texto simple y llano (o plano
como le llaman) a una impresora, en Visual Basic 6.0 Utilizaba el comando
Printer.Print, pero aqui en net, pues ya no existe ese comando, ahora estoy
utilizando el objeto PrinterDoc (a como dicen los manuales), pero este me
genera texto de tipo grafico) y bueno lo que sucede es que a la impresora le
estoy mandando secuencias de escape, es decir; instrucciones que solo ella
entiende y que deben ir en texto plano. Si le mando esa secuencia con el
objeto printer no me responde.
Alguna idea de como hacerle????

Muchas Gracias
 

Leer las respuestas

#1 Tristan
17/05/2005 - 23:22 | Informe spam
En realidad o mucho me equivoco o el Printer.Print de VB tampoco admitía
enviar secuencias de escape a la impresora.

Creo que en VB tenías que hacer lo mismo que ahora, o utilizar un api de
win32 que envía texto sin procesar a la impresora, o trabajar directamente
sobre el puerto serie.

Para escribir sobre el puerto serie es algo así:


'Puedes utilizar un puerto de red
Dim lpt1 As StreamWriter = GetStreamWriter("LPT1")
lpt1.WriteLine("Texto directo")
lpt1.Close()


Private Function GetStreamWriter(ByVal port As String) As
StreamWriter
Dim hFich As IntPtr = CreateFile(port, GENERIC WRITE,
0, IntPtr.Zero, OPEN EXISTING, 0, IntPtr.Zero)
Dim stream As New FileStream(hFich, FileAccess.Write)
Dim writer As New StreamWriter(stream)
Return writer
End Function

Const GENERIC WRITE As Int32 = &H40000000
Const OPEN EXISTING As Int32 = 3

Public Declare Auto Function CreateFile
Lib "kernel32.dll" (ByVal lpFileName As String, ByVal
dwDesiredAccess As Integer, ByVal dwShareMode As Integer,
ByVal lpSecurityAttributes As IntPtr, ByVal
dwCreationDisposition As Integer, ByVal
dwFlagsAndAttributes As Integer, ByVal hTemplateFile As
IntPtr) As IntPtr



Juan Carlos Badiola
MVP - C#

Preguntas similares