Principales respuestas
imprimir pdf pagina 1

Pregunta
-
hola
tengo una aplicación en Visual net donde imprimo un documento pdf
no se si el codigo es el mas idoneo para imprimir pero funciona ok
mi duda es si puedo imprimir solo la primera pagina
Dim MyProcess As New Process MyProcess.StartInfo.CreateNoWindow = False MyProcess.StartInfo.Verb = "print" MyProcess.StartInfo.FileName = "fichero.pdf" MyProcess.Start() MyProcess.WaitForExit(10000) MyProcess.CloseMainWindow() MyProcess.Close()
Aran
- Tipo cambiado Enrique M. MontejoModerator lunes, 1 de febrero de 2016 17:36
- Tipo cambiado Enrique M. MontejoModerator miércoles, 24 de febrero de 2016 12:33
Respuestas
-
Puedes usar AcroExch.PDDoc
Te pongo un ejemplo:
Dim ret as Integer
Dim pdfDoc As Acrobat.CAcroPDDoc
Dim pdfPage As Acrobat.CAcroPDPagepdfDoc = CreateObject("AcroExch.PDDoc")
ret = pdfDoc.Open(Fichero) ' Abro el documento
If ret = False Then
Throw New FileNotFoundException
Exit Sub
End If
pdfPage = pdfDoc.AcquirePage(1) ' Aquí tomo la 1ª página
Call pdfPage.CopyToClipboard(pdfRect, 0, 0, 100)
Dim clipboardData As IDataObject = Clipboard.GetDataObject() ' Lo copio al portapapelesAhora tendrás la imagen de la primera página en el portapapeles, ya solo tienes que imprimirla.
Saludos, Javier J
- Marcado como respuesta Enrique M. MontejoModerator viernes, 26 de febrero de 2016 7:49
- Desmarcado como respuesta aticnet lunes, 29 de febrero de 2016 8:14
- Marcado como respuesta Enrique M. MontejoModerator viernes, 4 de marzo de 2016 8:17
-
Falta parte del código :
Dim ret as Integer
Dim pdfDoc As Acrobat.CAcroPDDoc
Dim pdfPage As Acrobat.CAcroPDPage
Dim pdfRect As Acrobat.CAcroRect
Dim pdfRectTemp As Object
pdfDoc = CreateObject("AcroExch.PDDoc")
ret = pdfDoc.Open(Fichero) ' Abro el documento
If ret = False Then
Throw New FileNotFoundException
Exit Sub
End If
pdfPage = pdfDoc.AcquirePage(1) ' Aquí tomo la 1ª página
dfRectTemp = pdfPage.GetSize
pdfRect = CreateObject("AcroExch.Rect")
pdfRect.Left = 0
pdfRect.right = pdfRectTemp.x
pdfRect.Top = 0
pdfRect.bottom = pdfRectTemp.y
Call pdfPage.CopyToClipboard(pdfRect, 0, 0, 100)
Dim clipboardData As IDataObject = Clipboard.GetDataObject() ' Lo copio al portapapelesSaludos, Javier J
- Marcado como respuesta Enrique M. MontejoModerator viernes, 4 de marzo de 2016 8:17
-
Supongo que puedes usar varias formas. Una puede ser capturar el portapapeles en un picturebox e imprimirlo :
Dim data As IDataObject = Clipboard.GetDataObject() If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then Dim Bmp As Bitmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Bitmap) PictureBox1.Image = Bmp End If
Saludos, Javier J
- Marcado como respuesta Enrique M. MontejoModerator viernes, 4 de marzo de 2016 8:18
Todas las respuestas
-
veo que nadie tiene solucion para mi duda
tambien existe el System.Diagnostics.ProcessStartInfo pero me pasa igual
no consigo que imprima solo la primera pagina
por favor si alguien tiene alguna suguerencia que me pueda ayudar seria de muchisimo agradecer
un saludo
Aran
-
Puedes usar AcroExch.PDDoc
Te pongo un ejemplo:
Dim ret as Integer
Dim pdfDoc As Acrobat.CAcroPDDoc
Dim pdfPage As Acrobat.CAcroPDPagepdfDoc = CreateObject("AcroExch.PDDoc")
ret = pdfDoc.Open(Fichero) ' Abro el documento
If ret = False Then
Throw New FileNotFoundException
Exit Sub
End If
pdfPage = pdfDoc.AcquirePage(1) ' Aquí tomo la 1ª página
Call pdfPage.CopyToClipboard(pdfRect, 0, 0, 100)
Dim clipboardData As IDataObject = Clipboard.GetDataObject() ' Lo copio al portapapelesAhora tendrás la imagen de la primera página en el portapapeles, ya solo tienes que imprimirla.
Saludos, Javier J
- Marcado como respuesta Enrique M. MontejoModerator viernes, 26 de febrero de 2016 7:49
- Desmarcado como respuesta aticnet lunes, 29 de febrero de 2016 8:14
- Marcado como respuesta Enrique M. MontejoModerator viernes, 4 de marzo de 2016 8:17
-
muchas gracias
entiendo que tengo que agragar la referencia COM de Acrobat a mi proyecto no?
me da error la linea
Call pdfPage.CopyToClipboard(pdfRect, 0, 0, 100)
entiendo que en lugar de pdfRect es pdfdoc, o pdfpage o ret, pero con todas me da error, ref. a objeto no establecida
de todos modos, me dices que me quedo con la imagen en el portapapeles para imprimir pero tampoco se como imprimirla
Aran
-
Falta parte del código :
Dim ret as Integer
Dim pdfDoc As Acrobat.CAcroPDDoc
Dim pdfPage As Acrobat.CAcroPDPage
Dim pdfRect As Acrobat.CAcroRect
Dim pdfRectTemp As Object
pdfDoc = CreateObject("AcroExch.PDDoc")
ret = pdfDoc.Open(Fichero) ' Abro el documento
If ret = False Then
Throw New FileNotFoundException
Exit Sub
End If
pdfPage = pdfDoc.AcquirePage(1) ' Aquí tomo la 1ª página
dfRectTemp = pdfPage.GetSize
pdfRect = CreateObject("AcroExch.Rect")
pdfRect.Left = 0
pdfRect.right = pdfRectTemp.x
pdfRect.Top = 0
pdfRect.bottom = pdfRectTemp.y
Call pdfPage.CopyToClipboard(pdfRect, 0, 0, 100)
Dim clipboardData As IDataObject = Clipboard.GetDataObject() ' Lo copio al portapapelesSaludos, Javier J
- Marcado como respuesta Enrique M. MontejoModerator viernes, 4 de marzo de 2016 8:17
-
-
Supongo que puedes usar varias formas. Una puede ser capturar el portapapeles en un picturebox e imprimirlo :
Dim data As IDataObject = Clipboard.GetDataObject() If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then Dim Bmp As Bitmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Bitmap) PictureBox1.Image = Bmp End If
Saludos, Javier J
- Marcado como respuesta Enrique M. MontejoModerator viernes, 4 de marzo de 2016 8:18
-
-
Puedes imprimirlo así:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim myPrintDocument1 As System.Drawing.Printing.PrintDocument = New System.Drawing.Printing.PrintDocument()
Dim myPrinDialog1 As New PrintDialog()
AddHandler myPrintDocument1.PrintPage, New System.Drawing.Printing.PrintPageEventHandler(AddressOf myPrintDocument1_PrintPage)
myPrinDialog1.Document = myPrintDocument1
If myPrinDialog1.ShowDialog() = DialogResult.OK Then
myPrintDocument1.Print()
End If
End Sub
Private Sub myPrintDocument1_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs)
Dim myBitmap2 As New Bitmap(Me.Width, Me.Height)
Me.DrawToBitmap(myBitmap2, New Rectangle(0, 0, Me.Width, Me.Height))
e.Graphics.DrawImage(myBitmap2, 0, 0)
myBitmap2.Dispose()
End SubSaludos, Javier J
- Marcado como respuesta Enrique M. MontejoModerator viernes, 4 de marzo de 2016 8:18
- Desmarcado como respuesta aticnet martes, 8 de marzo de 2016 10:44
-