none
Separar un PDF en varios PDF RRS feed

  • Pregunta

  • Hola, tengo una aplicación en la cual imprimo un PDF que contiene varias páginas, necesito separarlas para mandarlas por separado pero no se como hacerlo y no encuentro mucha información útil..

    ¿ Alguien sabe como podría hacerlo ?

    martes, 31 de mayo de 2016 15:51

Respuestas

  • Puedes usar PdfSharp.dll

    Te pongo una parte del código que utilizo:

    Dim ficheroPDFOrigenDividir As PdfDocument = CompatiblePdfReader.Open(rutaFicheroPDFOrigenDividir) Dim nombreFicheroDestinoPaginasPDF As String = Path.GetFileNameWithoutExtension(txtNombre.Text)

    For paginaPDFActual As Integer = 0 To ficheroPDFOrigenDividir.PageCount - 1 ' Crear el documento PDF destino de la página extraida Dim ficheroPDFPaginaDestino As PdfDocument = New PdfDocument() ficheroPDFPaginaDestino.Info.Creator = Application.ProductName ficheroPDFPaginaDestino.Info.ModificationDate = DateTime.Now ficheroPDFPaginaDestino.Info.Title =String.Format("Página {0} de {1}", paginaPDFActual + 1, ficheroPDFOrigenDividir.PageCount) ' Añadir la página y guardar el fichero PDF creado ficheroPDFPaginaDestino.AddPage(ficheroPDFOrigenDividir.Pages(paginaPDFActual)) Dim Pagina As Integer = paginaPDFActual + 1 Dim nombreFicheroPDFDestino As String = Path.Combine("C:\Ruta\", nombreFicheroDestinoPaginasPDF + " - Página " + Format(Pagina, "0000")) + ".pdf" ficheroPDFPaginaDestino.Save(nombreFicheroPDFDestino) Next MsgBox ("Proceso finalizado.")



    Saludos, Javier J

    martes, 31 de mayo de 2016 16:22

Todas las respuestas

  • Puedes usar PdfSharp.dll

    Te pongo una parte del código que utilizo:

    Dim ficheroPDFOrigenDividir As PdfDocument = CompatiblePdfReader.Open(rutaFicheroPDFOrigenDividir) Dim nombreFicheroDestinoPaginasPDF As String = Path.GetFileNameWithoutExtension(txtNombre.Text)

    For paginaPDFActual As Integer = 0 To ficheroPDFOrigenDividir.PageCount - 1 ' Crear el documento PDF destino de la página extraida Dim ficheroPDFPaginaDestino As PdfDocument = New PdfDocument() ficheroPDFPaginaDestino.Info.Creator = Application.ProductName ficheroPDFPaginaDestino.Info.ModificationDate = DateTime.Now ficheroPDFPaginaDestino.Info.Title =String.Format("Página {0} de {1}", paginaPDFActual + 1, ficheroPDFOrigenDividir.PageCount) ' Añadir la página y guardar el fichero PDF creado ficheroPDFPaginaDestino.AddPage(ficheroPDFOrigenDividir.Pages(paginaPDFActual)) Dim Pagina As Integer = paginaPDFActual + 1 Dim nombreFicheroPDFDestino As String = Path.Combine("C:\Ruta\", nombreFicheroDestinoPaginasPDF + " - Página " + Format(Pagina, "0000")) + ".pdf" ficheroPDFPaginaDestino.Save(nombreFicheroPDFDestino) Next MsgBox ("Proceso finalizado.")



    Saludos, Javier J

    martes, 31 de mayo de 2016 16:22
  • Hola Javier, gracias por la ayuda!

    No me reconoce CompatiblePdfReader.open

    Dim ficheroPDFOrigenDividir As PdfDocument = CompatiblePdfReader.Open(rutaFicheroPDFOrigenDividir)
    Dim nombreFicheroDestinoPaginasPDF As String = Path.GetFileNameWithoutExtension(txtNombre.Text)

    He importado PdfSharp.pdf

    miércoles, 1 de junio de 2016 9:23
  • No incluí esa función:

    Public Function Open(ByVal sFilename As String) As PdfDocument Dim reader As New PdfDocument() Try reader = PdfReader.Open(sFilename, PdfDocumentOpenMode.Import) Catch generatedExceptionName As PdfSharp.Pdf.IO.PdfReaderException 'caso de que pdfsharp no admita el archivo pdf Dim newName As MemoryStream = ReturnCompatiblePdf(sFilename) reader = PdfReader.Open(newName, PdfDocumentOpenMode.Import) End Try Return reader

    End Function



    Saludos, Javier J

    miércoles, 1 de junio de 2016 9:36