Red de conocimiento informático - Material del sitio web - ¿Cómo utilizar VBA para abrir un PDF y consultar los datos, obtener el número de página o extraer la página como un archivo nuevo?

¿Cómo utilizar VBA para abrir un PDF y consultar los datos, obtener el número de página o extraer la página como un archivo nuevo?

Abra el documento PDF, busque la cadena especificada y luego inserte el marcador

El siguiente código primero establece una cadena para buscar, usa el método findtext para buscar y luego usa el método createchild para insertar el marcador. El entorno de ejecución del código es Win8.1, Word2010 VBA, Acrobat Pro DC y la prueba fue exitosa en esta máquina.

Los principales métodos utilizados son AVDoc.FindText y BookMark.createChild.

AVDoc.FindText tiene 4 parámetros:

szText, la cadena que se va a encontrar

bCaseSensitive, si distingue entre mayúsculas y minúsculas, el número positivo distingue entre mayúsculas y minúsculas , 0 no distingue

bWholeWordsOnly, si coincide con la palabra completa, un número positivo significa coincidencia, 0 significa que no hay coincidencia

bRestablecer, la posición inicial de la búsqueda, un número positivo el número comienza desde la primera página, 0 significa comenzar desde la página actual

BookMark.createChild tiene 3 parámetros

cName, el nombre del marcador que el usuario ve en el panel de navegación.

cExpr, la expresión que se ejecutará cuando se haga clic en el marcador, como JavaScript

nIndex, (opcional) En el subconjunto del marcador, el índice basado en 0 del Se crea un nuevo submarcador. El valor predeterminado es 0.

Sub Pdf Add Bookmark()

'Agregar un marcador a un libro

Dim App As New Acrobat.AcroApp

Dim PDoc Como nuevo Acrobat.AcroPDDoc, AVDoc como nuevo Acrobat.AcroAVDoc

Atenuar Jso como objeto

Atenuar BMark como objeto 'no se puede declarar como Acrobat.AcroPDBookmark; de lo contrario, el método createchild no se disponible.

Dim PFile As String, WordTF As String, PageNum As Long

PFile = "F:\Specified file.pdf" 'Archivo PDF para insertar marcadores

WordTF = "Buscando"

Si PDoc.Open(PFile) Entonces

Establecer Jso = PDoc.GetJSObject

Establecer AVDoc = PDoc.OpenAVDoc( "" ) ?'Obtener un documento visible

Jso.bookmarkroot.Remove 'Eliminar todos los marcadores originales

End If

If AVDoc.FindText( WordTF, 0, 0 , 1) Luego 'Comience desde la primera página, si la cadena WordTF se encuentra una vez

PageNum = AVDoc.GetAVPageView.GetPageNum 'Obtenga el número de página actual

Establezca BMark = Jso. bookmarkroot 'Establece el objeto raíz del marcador

BMark.createChild WordTF, "this.pageNum=" amp PageNum, 0 'Crea un marcador

PDoc.Save 1, PFile

Finalizar si

PDoc.Close

App.CloseAllDocs

App.Hide

App.Exit

Establecer AVDoc = Nada

Establecer PDoc = Nada

Establecer aplicación = Nada

Establecer BMark = Nada

Establecer Jso = Nada

Fin Sub