¿Se puede crear una macro que separe un archivo de PDF de varias hojas a individuales?

La presente es para saber si es posible crear una macro que sea capaz de separar un archivo de PDF de varias hojas a hojas individuales.

Como se puede observar en la imagen tengo un PDF de 13 hojas, necesito que me las individualice y las coloque en alguna carpeta, a fin de que se puedan encontrar con facilidad.

1 Respuesta

Respuesta
1

Yo divido los pdf en un equipo que tiene instalado el Adobe Acrobat. Con el Acrobat Reader sólo NO se puede, hasta donde yo sé, porque es necesario establecer una referencia a la librería Adobe Acrobat.

Si tienes disponible el Adobe Acrobat te pongo el código que uso yo.

Un saludo_

¿Gracias cuál es el código?

Option Explicit
'Autor: José Ramón García Campos (JRGCES)
'Para que funcione este código es necesario tener establecida una referencia a la librería _
 Adobe Acrobat (desde Herramientas->Referencias)
Sub Dividir_pdf()
    Dim PDDoc As Acrobat.CAcroPDDoc, PDFnuevo As Acrobat.CAcroPDDoc
    Dim PDpágina As Acrobat.CAcroPDPage
    Dim sPdf_a_dividir As String, lNumPáginas As Long
    Dim i As Integer, Result As Variant, sNuevoNombre As String, sRuta_de_salida As String
    sPdf_a_dividir = "C:\Borrar\DialesMovistar.pdf"
    sRuta_de_salida = "C:\Borrar\"
    Set PDDoc = CreateObject("AcroExch.pdDoc")
    Result = PDDoc.Open(sPdf_a_dividir)
    If Not Result Then
        MsgBox "No se pudo abrir " & sPdf_a_dividir
        Exit Sub
    End If
    lNumPáginas = PDDoc.GetNumPages
    Application.StatusBar = "Dividiendo PDF ... "
    For i = 0 To lNumPáginas - 1
        Set PDFnuevo = CreateObject("AcroExch.pdDoc")
        PDFnuevo.Create
        sNuevoNombre = sRuta_de_salida & CStr(i + 1) & ".pdf"
        PDFnuevo.InsertPages -1, PDDoc, i, 1, 0
        PDFnuevo.Save 1, sNuevoNombre
        PDFnuevo.Close
        Set PDFnuevo = Nothing
    Next i
End Sub

El nombre de los pdf con las páginas separadas será su número, pero obviamente es posible cambiarlo en la instrucción

        sNuevoNombre = sRuta_de_salida & CStr(i + 1) & ".pdf"

Saludos_

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas