Cách thêm thư viện pdfsharp DLL vào tài liệu tham khảo VBA macro excel

lập trình


Tuy nhiên, tôi có đoạn mã sau để chạy nó, điều kiện tiên quyết là phải cài đặt thư viện PDFsharp và tôi không thể thêm tham chiếu trong Excel VBA.

Sub BulkPDFExtraction()
‘ Tham khảo: thư viện PDFsharp

‘ Xác định đường dẫn thư mục chứa file PDF
Dim thư mụcPath dưới dạng chuỗi
folderPath = “C:\Users\vlad.zaicescu\Desktop\PDF-to-Excel\sample_invoice”

‘ Tạo một bảng tính và bảng tính Excel mới
Dim wb As Workbook
Đặt wb = Workbooks.Add

Dim ws As Worksheet
Đặt ws = wb.Sheets(1)

’ Đặt hàng bắt đầu để chèn dữ liệu được trích xuất
Dim startRow As Integer
hàng bắt đầu = 1

‘ Lấy tất cả file PDF trong thư mục
Dim pdfFiles() dưới dạng chuỗi
pdfFiles = GetPDFFilesInFolder(folderPath)

‘ Trích xuất dữ liệu từ mỗi file PDF và chèn vào Excel
Dim i là số nguyên
Với i = LBound(pdfFiles) Đến UBound(pdfFiles)
Làm mờ pdfPath dưới dạng chuỗi
pdfPath = folderPath & pdfFiles(i)

Dim trích xuất dữ liệu dưới dạng chuỗi
extractData = ExtractDataFromPDF(pdfPath)

‘ Chèn dữ liệu vừa trích xuất vào bảng tính Excel
ws.Cells(startRow, 1).Value = pdfFiles(i) ‘ Chèn tên tệp PDF
ws.Cells(startRow, 2).Value = extractData ‘ Chèn dữ liệu đã trích xuất

startRow = startRow + 1
Tiếp theo tôi

‘ Tự động căn chỉnh các cột trong bảng tính Excel
ws.Columns.AutoFit

‘ Lưu sổ làm việc
Dim savePath dưới dạng chuỗi
savePath = “C:\Path\to\save\output.xlsx”

wb.SaveAs savePath

’ Đóng sổ làm việc và dọn dẹp
wb.Đóng
Đặt ws = Không có gì
Đặt wb = Không có gì

MsgBox “Đã hoàn tất trích xuất hàng loạt. Đầu ra được lưu vào: ” & savePath
Kết thúc phụ

Hàm GetPDFFilesInFolder(ByVal folderPath As String) As String()
‘ Nhận tất cả các tệp PDF trong thư mục được chỉ định

Tập tin mờ() dưới dạng chuỗi
Tập tin mờĐếm dưới dạng số nguyên
tập tinCount = 0

Tên tệp mờ dưới dạng chuỗi
fileName = Dir(folderPath & “*.pdf”)

Thực hiện trong khi tên tệp <> “”
ReDim Bảo quản các tập tin (0 To fileCount)
tập tin(fileCount) = tên tập tin

fileCount = fileCount + 1
tên tệp = thư mục
Vòng

GetPDFFilesInFolder = tập tin
Chức năng kết thúc

Hàm ExtractDataFromPDF(ByVal pdfPath As String) Dưới dạng String
‘ Trích xuất dữ liệu từ file PDF bằng PDFsharp

‘ Tạo một tài liệu PDF
Làm mờ tài liệu dưới dạng PdfSharp.Pdf.PdfDocument mới

‘Mở tập tin PDF
tài liệu.Open(pdfPath)

‘ Trích xuất văn bản từ mỗi trang
Dim trích xuất dữ liệu dưới dạng chuỗi
đã trích xuấtData = “”

Làm mờ trangĐếm dưới dạng số nguyên
pageCount = tài liệu.PageCount

Dim i là số nguyên
Với i = 0 Đến pageCount – 1
Làm mờ trang dưới dạng PdfSharp.Pdf.PdfPage
trang = tài liệu.Pages(i)

Làm mờ nội dung dưới dạng PdfSharp.Pdf.Content.PdfContentReader
nội dung = PdfSharp.Pdf.Content.PdfContentReader(trang) mới

Trong khi nội dung.Read()
Nếu content.GetType() là GetType(PdfSharp.Pdf.Content.PdfLiteral) thì
Chữ mờ như PdfSharp.Pdf.Content.PdfLiteral
chữ = DirectCast(nội dung, PdfSharp.Pdf.Content.PdfLiteral)

extractData = extractData & chữ.Value
Kết thúc nếu
Kết thúc trong khi
Tiếp theo tôi

’ Đóng tài liệu PDF
tài liệu.Đóng

ExtractDataFromPDF = Trích xuất dữ liệu
Chức năng kết thúc

Những gì tôi đã thử:

Tôi đã tạo một lớp trong studio trực quan, cài đặt thư viện PDFsharp thông qua trình quản lý gói NuGet và xây dựng giải pháp nhận DLL mà tôi có thể sử dụng làm tài liệu tham khảo trong Excel VBA. Tuy nhiên, khi tôi cố gắng thêm DLL thì tôi không thể. Hơn nữa, tôi đã thử thêm PDFsharp DLL từ gói NuGet nhưng cũng không thành công.
Vui lòng xem video repro tại đây: https://app.screencast.com/MJmEkYKUsnGsw

コメント

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