Principales respuestas
Imprimir un archivo directamente a la impresora sin abrirlo en VB.NET

Pregunta
-
Respuestas
-
Hola Juan
Si sabes exactamente el formato del fichero que vas a imprimir (sea excel, word un txt etc) puedes usar un proceso creado para dicha aplicación muy concreto y tener mucho más control sobre la impresión.
Si no es así te pongo un ejemplo genérico para imprimir cualquier fichero siempre y cuando el formato del fichero a imprimir tenga aplicación instalada en el equipo que imprime.
La variable printername recoge la impresora predeterminada del equipo, puedes poner una a mano si conoces exactamente el nombre de la impresora, tiene que existir o dará error. Sería fácil preguntar previamente por la lista de impresoras válidas y que el usuario elija pero no te lo pongo por claridad a lo que preguntas.
Al llamar a la sub debes pasar como argumento el fichero a imprimir. Para llamar a la sub sería:
Sub Quiero_Imprimir()
Call PrintArchivo("C:\Datos\Fichero_Ejemplo.txt")
En Sub
Sub PrintArchivo(ByVal Path_Fichero As String)
Try
Dim printername As String
Dim oPS As New System.Drawing.Printing.PrinterSettings
printername = oPS.PrinterName
Dim Proc As New System.Diagnostics.Process
Proc.EnableRaisingEvents = True
Proc.StartInfo.FileName = Path_Fichero
Proc.StartInfo.Arguments = Chr(34) + printername + Chr(34)
Proc.StartInfo.Verb = "Print"
Proc.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
Proc.StartInfo.CreateNoWindow = True
Proc.Start()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End SubUn saludo
- Marcado como respuesta Juan Martinez F miércoles, 14 de octubre de 2020 15:20
Todas las respuestas
-
Hola:
> Como puedo imprimir un archivo con la ruta de dicho archivo sin tener que abrirlo y que directamente imprima por la impresora predeterminada. <
NO se puede.
Hay multitud de tipos de archivo y para (imrprimir y/o manipular) un archivo, primero se tiene que conocer que tipo de archivo es.
Un saludo desde Bilbo
Carlos -
Hola Juan
Si sabes exactamente el formato del fichero que vas a imprimir (sea excel, word un txt etc) puedes usar un proceso creado para dicha aplicación muy concreto y tener mucho más control sobre la impresión.
Si no es así te pongo un ejemplo genérico para imprimir cualquier fichero siempre y cuando el formato del fichero a imprimir tenga aplicación instalada en el equipo que imprime.
La variable printername recoge la impresora predeterminada del equipo, puedes poner una a mano si conoces exactamente el nombre de la impresora, tiene que existir o dará error. Sería fácil preguntar previamente por la lista de impresoras válidas y que el usuario elija pero no te lo pongo por claridad a lo que preguntas.
Al llamar a la sub debes pasar como argumento el fichero a imprimir. Para llamar a la sub sería:
Sub Quiero_Imprimir()
Call PrintArchivo("C:\Datos\Fichero_Ejemplo.txt")
En Sub
Sub PrintArchivo(ByVal Path_Fichero As String)
Try
Dim printername As String
Dim oPS As New System.Drawing.Printing.PrinterSettings
printername = oPS.PrinterName
Dim Proc As New System.Diagnostics.Process
Proc.EnableRaisingEvents = True
Proc.StartInfo.FileName = Path_Fichero
Proc.StartInfo.Arguments = Chr(34) + printername + Chr(34)
Proc.StartInfo.Verb = "Print"
Proc.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
Proc.StartInfo.CreateNoWindow = True
Proc.Start()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End SubUn saludo
- Marcado como respuesta Juan Martinez F miércoles, 14 de octubre de 2020 15:20
-
-