Como imprimir cualquier tipo de archivo en VB.NET

Iniciado por bybaal, 3 Abril 2015, 04:08 AM

0 Miembros y 1 Visitante están viendo este tema.

bybaal

Necesito imprimir desde VB.NET cualquier archivo (ej: JPG, PNG, DOC, XLS, PDF, PPT) que esté guardado en la pc. Usando el cuadro de diálogo Imprimir., para permitir seleccionar las páginas que quiero imprimir o cualquier otra opción permitida en este diálogo.

Muchas Gracias
por sus aportes

Eleкtro

#1
Llego bastante tarde a responder (es lo que sucede si se publica en la sección equivocada, jeje), pero, ¿ya solucionaste el problema?, como veo que no recibiste respuesta te dejo alguna ayuda por si acaso...

Puedes hacerlo al menos de dos formas, la primera sería invocando el verbo de impresión del archivo (la constante "print"), con la class Process:
Código (vbnet) [Seleccionar]

Using p As New Process
   p.StartInfo.FileName = "C:\Imagen.png"
   p.StartInfo.Verb = "Print"
   p.Start()
End Using


Y la segunda manera sería utilizar la class PrintDocument para dibujar la imagen en el evento PrintPage, pero este modo en mi opinión es para tareas más sofisticadas que una simple impresión de un archivo multimedia.

Saludos








bybaal

Discúlpame por demorarme en responder, es que ya casi había dado este tema como sin solución de corto plazo, pero bueno, aquí vamos.

Voy a tratar de explicarlo mejor ya que después me di cuenta que hay librerías que me permiten hacer lo que necesito, lo que pasa es que no me encontré ninguna que fuera free o un código para poder hacerlo.

Lo que en realidad necesito es desde mi programa llevar el control de lo que se imprime en cada impresora local, o sea; el nombre y ubicación de los documentos, cantidad de hojas impresas de los documentos.

Salu2s

PD: puse este problema aquí pensando que alguien me podía ayudar con algún segmento de código, pero si aparece una librería free u otra solución, bienvenida sea.

Cita de: Eleкtro en 20 Diciembre 2015, 08:16 AM
Llego bastante tarde a responder (es lo que sucede si se publica en la sección equivocada, jeje), pero, ¿ya solucionaste el problema?, como veo que no recibiste respuesta te dejo alguna ayuda por si acaso...

Puedes hacerlo al menos de dos formas, la primera sería invocando el verbo de impresión del archivo (la constante "print"), con la class Process:
Código (vbnet) [Seleccionar]

Using p As New Process
   p.StartInfo.FileName = "C:\Imagen.png"
   p.StartInfo.Verb = "Print"
   p.Start()
End Using


Y la segunda manera sería utilizar la class PrintDocument para dibujar la imagen en el evento PrintPage, pero este modo en mi opinión es para tareas más sofisticadas que una simple impresión de un archivo multimedia.

Saludos

Eleкtro

#3
Hay muchas soluciones en Google, pero muchas de ellas están desactualizadas y/o son demasiado rebuscadas e ineficientes ya que recurren a código no administrado, cuando supuestamente sería suficiente con utilizar la class PrintQueue para monitorear la cola de una impresora...

...Busca en Google ejemplos sobre el uso de esa class para tus propósitos.

Si quieres algo ya hecho, lo más sencillo tal vez sea utilizar esta librería:

+

Saludos.