Cómo agregar la DLL de la biblioteca pdfsharp a las referencias macro de Excel VBA

programación


Tengo el siguiente código, sin embargo, para ejecutarlo, el requisito previo es tener instalada la biblioteca PDFsharp y no puedo agregar la referencia en Excel VBA.

Extracción PDF Submasiva()
‘ Referencia: biblioteca PDFsharp

‘Definimos la ruta de la carpeta que contiene los archivos PDF
Carpeta tenueRuta como cadena
carpetaPath = “C:\Users\vlad.zaicescu\Desktop\PDF-to-Excel\sample_invoice”

‘Crear un nuevo libro y hoja de trabajo de Excel
Atenuar wb como libro de trabajo
Establecer wb = Libros de trabajo.Agregar

Atenuar ws como hoja de trabajo
Establecer ws = wb.Sheets(1)

‘ Establece la fila inicial para insertar los datos extraídos
Dim startRow como entero
fila inicial = 1

‘Obtiene todos los archivos PDF en la carpeta
Dim pdfFiles() como cadena
pdfFiles = GetPDFFilesInFolder(rutacarpeta)

‘ Extrae datos de cada archivo PDF e inserta en Excel
Atenuar i como entero
Para i = LBound(pdfFiles) a UBound(pdfFiles)
Dim pdfPath como cadena
pdfPath = carpetaPath & pdfFiles(i)

Datos extraídos tenues como cadena
datos extraídos = extraer datos de PDF (rutapdf)

‘ Inserta los datos extraídos en la hoja de cálculo de Excel.
ws.Cells(startRow, 1).Value = pdfFiles(i) ‘ Inserta el nombre del archivo PDF
ws.Cells(startRow, 2).Value = extraídoDatos ‘ Inserta los datos extraídos

filaInicio = filaInicio + 1
Siguiente yo

‘Ajustar automáticamente las columnas en la hoja de cálculo de Excel
ws.Columnas.AutoFit

‘Guarda el libro
Atenuar savePath como cadena
savePath = “C:\Ruta\a\save\output.xlsx”

wb.SaveAs guardarPath

‘ Cierra el libro y limpia
wb.Cerrar
Establecer ws = Nada
Establecer wb = Nada

MsgBox “Extracción masiva completada. Salida guardada en: ” & savePath
Subtítulo final

Función GetPDFFilesInFolder(ByVal carpetaPath como cadena) Como cadena()
‘Obtiene todos los archivos PDF en la carpeta especificada

Archivos atenuados() como cadena
Archivo tenueContar como entero
número de archivos = 0

Nombre de archivo tenue como cadena
nombre de archivo = Dir(ruta de la carpeta y “*.pdf”)

Hacer mientras nombre de archivo <> “”
ReDim Conservar archivos (0 a fileCount)
archivos (número de archivos) = nombre de archivo

cuentaarchivos = cuentaarchivos + 1
nombre de archivo = Directorio
Bucle

GetPDFFilesInFolder = archivos
Función final

Función ExtractDataFromPDF (ByVal pdfPath como cadena) como cadena
‘ Extrae datos de un archivo PDF usando PDFsharp

‘Crear un documento PDF
Atenuar documento como nuevo PdfSharp.Pdf.PdfDocument

‘Abre el archivo PDF
documento.Open(pdfPath)

‘ Extrae el texto de cada página
Datos extraídos tenues como cadena
datos extraídos = “”

Página tenueContar como entero
pageCount = documento.PageCount

Atenuar i como entero
Para i = 0 Para pageCount – 1
Página atenuada como PdfSharp.Pdf.PdfPage
página = documento.Páginas(i)

Contenido atenuado como PdfSharp.Pdf.Content.PdfContentReader
contenido = Nuevo PdfSharp.Pdf.Content.PdfContentReader(página)

Mientras que content.Read()
Si content.GetType() es GetType(PdfSharp.Pdf.Content.PdfLiteral) Entonces
Literal tenue como PdfSharp.Pdf.Content.PdfLiteral
literal = DirectCast(contenido, PdfSharp.Pdf.Content.PdfLiteral)

Datos extraídos = Datos extraídos y valor literal.
Terminara si
terminar mientras
Siguiente yo

‘Cerramos el documento PDF
documento.Cerrar

ExtractDataFromPDF = datos extraídos
Función final

Lo que he probado:

Creé una clase en Visual Studio, instalé la biblioteca PDFsharp a través del administrador de paquetes NuGet y compilé la solución para recibir una DLL que puedo usar como referencia en Excel VBA. Sin embargo, cuando intento agregar la DLL no puedo. Además, intenté simplemente agregar la DLL PDFsharp del paquete NuGet, lo que también falló.
Vea la reproducción del vídeo aquí: https://app.screencast.com/MJmEkYKUsnGsw

コメント

タイトルとURLをコピーしました