none
Imprimiendo PDF RRS feed

  • Pregunta

  • Buenas tardes. 
    Tengo el siguiente proceso que imprime un documento .pdf

    Private Sub ImprimeComprobante()
            Dim archivo As String = "C:\archivo.pdf"
            Dim psi As System.Diagnostics.ProcessStartInfo = New System.Diagnostics.ProcessStartInfo()
            psi.UseShellExecute = True
            psi.Verb = "print"
            psi.FileName = archivo
            psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden
            psi.ErrorDialog = False
            psi.Arguments = "/p"
            Dim p As System.Diagnostics.Process = System.Diagnostics.Process.Start(psi)
            p.WaitForInputIdle()
        End Sub

    Esto funciona correctamente, con una salvedad...que abre el Adobe Acrobat Reader DC y lo deja abierto

    La pregunta es si es posible enviar a imprimir pero que no quede abierta esta aplicación, o mejor que directamente no la muestre nunca, porque lo que hace es abrirla, carga el archivo, imprime y despues se minimiza pero queda abierta.

    Gracias
    domingo, 28 de octubre de 2018 19:18

Respuestas

  • Agrega el componente AxAcroPDF1 al cuadro de herramientas lo pones en el formulario

    como un control mas y pones su propiedad

    visible en false luego pones este codigo sencillo pero funciona

    Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim archivo As String = "C:\archivo.pdf" Try If AxAcroPDF1.LoadFile(Archivo) Then AxAcroPDF1.printAll() End If Catch ex As Exception MsgBox(ex.Message) End Try End Sub End Class



    • Editado DANTE-3D lunes, 29 de octubre de 2018 15:53
    • Marcado como respuesta Diego Leonard lunes, 29 de octubre de 2018 16:43
    lunes, 29 de octubre de 2018 15:52

Todas las respuestas

  • prueba a cerrar el proceso con kill en tu caso despues de p.WaitForInputIdle()

    pones p.kill()

    domingo, 28 de octubre de 2018 20:15
  • Hola Dante. Gracias por tu ayuda, pero no me funcionó....creo que ya lo había probado.

    El tema es que no puedo imprimir un archivo pdf sin que se abra el adobe dc. Pero admitiría que se abra siempre y cuando luego se cierre, pero no hace eso. Si bien queda abierta la aplicación no deja el archivo abierto, es decir que cuando mando a imprimir pasa esto:

    Inicia Adobe DC en segundo plano (desearia poder imprimir directamente sin necesidad del adobe dc)

    Abre el archivo a imprimir

    Lo imprime

    Cierra el archivo

    Adobe queda abierto en su pantalla inicial minimizado

    Alguna otra sugerencia ?


    lunes, 29 de octubre de 2018 13:09
  • Agrega el componente AxAcroPDF1 al cuadro de herramientas lo pones en el formulario

    como un control mas y pones su propiedad

    visible en false luego pones este codigo sencillo pero funciona

    Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim archivo As String = "C:\archivo.pdf" Try If AxAcroPDF1.LoadFile(Archivo) Then AxAcroPDF1.printAll() End If Catch ex As Exception MsgBox(ex.Message) End Try End Sub End Class



    • Editado DANTE-3D lunes, 29 de octubre de 2018 15:53
    • Marcado como respuesta Diego Leonard lunes, 29 de octubre de 2018 16:43
    lunes, 29 de octubre de 2018 15:52
  • Excelente Dante. Muchas gracias.

    Con tres líneas reemplazo el código que tenía. No conocía el componente.

    Muy fácil de usar, y además me da la opción de imprimir determinadas hojas...cosa que también necesitaba en algún caso.

    Muchas gracias por tu tiempo.

    lunes, 29 de octubre de 2018 16:46
  • Me alegro a verle servido de ayuda un saludo
    lunes, 29 de octubre de 2018 17:57