none
Transformar PDF en X PDF según número de páginas RRS feed

  • Pregunta

  • Buenas,

    Quiero crear una aplicación en VB.net donde abra un archivo PDF, lo muestra (Esa parte la tengo implementada) y después, mediante un botón, genere tantos archivos PDF's como páginas tenga ese PDF (único).

    He visto que hay un hilo (y lo intentado implementar sin buen resultado) Separar un PDF en varios PDF, pero no consigo que me funcione.

    He estado utilizando la librería PdfSharp, pero no hay forma que me funcione.

    Me podrían facilitar un código donde pueda añadirlo al botón y me genere varios pdfs' (tantas páginas tenga) de un archivo PDF

    Gracias.


    Agus

    viernes, 16 de abril de 2021 12:06

Todas las respuestas

  • Hola:
    Prueba lo siguiente


        Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click
            Dim DocumentoEntrada As PdfDocument = PdfReader.Open(Me.txtFichero.Text, PdfDocumentOpenMode.ReadOnly)
            Dim NumPaginas As Integer = DocumentoEntrada.PageCount
            For liCiclo As Integer =1 To NumPaginas
                'recorrer el ciclo de las paginas
                ' Crear nuevo documento 
                Dim DocumentoSalida As New PdfDocument()
                DocumentoSalida.Info.Creator = DocumentoEntrada.Info.Creator
                ' Añadir la página y guardarla 
                DocumentoSalida.AddPage(DocumentoEntrada.Pages(liCiclo))
                DocumentoSalida.Save(Me.txtCarpeta.Text & "\" &  liCiclo.ToString & Path.GetFileName(Me.txtFichero.Text))
            Next
        End Sub

    Un saludo desde Bilbo
    Carlos
    viernes, 16 de abril de 2021 20:24
  • Muchas gracias

    Me ha funcionado a la perfección el código que has puesto. (Lo pongo aquí, por si alguien le puede servir de utilidad)

        Private Sub BtnSepararPDF_Click(sender As Object, e As EventArgs) Handles BtnSepararPDF.Click
            Dim DocumentoEntrada As PdfDocument = IO.PdfReader.Open(OpenFileDialog1.FileName, IO.PdfDocumentOpenMode.Import)
            Dim NumPaginas As Integer = DocumentoEntrada.PageCount - 1
            Dim StrFichero As String
            Dim StrCarpeta As String
    
            StrFichero = System.IO.Path.GetFileNameWithoutExtension(OpenFileDialog1.FileName)
            StrCarpeta = System.IO.Path.GetDirectoryName(OpenFileDialog1.FileName)
    
            For liCiclo As Integer = 1 To NumPaginas
                'recorrer el ciclo de las paginas
                ' Crear nuevo documento 
                Dim DocumentoSalida As New PdfDocument()
                DocumentoSalida.Info.Creator = DocumentoEntrada.Info.Creator
                ' Añadir la página y guardarla 
                DocumentoSalida.AddPage(DocumentoEntrada.Pages(liCiclo))
                DocumentoSalida.Save(StrCarpeta & "\" & StrFichero & "_" & CStr(liCiclo.ToString) & ".pdf")
            Next
    
            MsgBox("Se han generado " & NumPaginas & " páginas en la carpeta 'Documentos'")
        End Sub

    Me genera tantos archivos como páginas tenga el PDF.

    Ahora voy a buscar cómo extraer el número del DNI de cada página y así poder renombrar los archivos con el DNI de cada persona.

    Muchas gracias :)


    Agus



    • Editado agusmelo lunes, 19 de abril de 2021 7:08
    lunes, 19 de abril de 2021 6:11