Bagaimana cara menambahkan DLL perpustakaan pdfsharp ke referensi makro excel VBA

pemrograman


Saya memiliki kode berikut, namun untuk menjalankannya, prasyaratnya adalah menginstal perpustakaan PDFsharp dan saya tidak dapat menambahkan referensi di Excel VBA.

Ekstraksi PDF Sub Massal()
‘ Referensi: perpustakaan PDFsharp

‘ Tentukan jalur folder yang berisi file PDF
Redupkan folderPath Sebagai String
folderPath = “C:\Users\vlad.zaicescu\Desktop\PDF-ke-Excel\sample_invoice”

‘ Buat buku kerja dan lembar kerja Excel baru
Redupkan wb Sebagai Buku Kerja
Setel wb = Buku Kerja.Tambahkan

Redupkan Sebagai Lembar Kerja
Setel ws = wb.Lembar(1)

‘ Atur baris awal untuk memasukkan data yang diekstraksi
Redupkan startRow Sebagai Integer
mulaiBaris = 1

‘ Dapatkan semua file PDF di folder tersebut
Redupkan pdfFiles() Sebagai String
pdfFiles = DapatkanPDFFilesInFolder(jalur folder)

‘ Ekstrak data dari setiap file PDF dan masukkan ke Excel
Redupkan saya Sebagai Integer
Untuk i = LBound(pdfFiles) Ke UBound(pdfFiles)
Redupkan pdfPath Sebagai String
pdfPath = jalur folder & File pdf(i)

Redupkan Data yang diekstraksi Sebagai String
diekstraksiData = EkstrakDataDariPDF(pdfPath)

‘ Masukkan data yang diekstraksi ke dalam lembar kerja Excel
ws.Cells(startRow, 1).Value = pdfFiles(i) ‘ Masukkan nama file PDF
ws.Cells(startRow, 2).Value = ExtractData ‘ Masukkan data yang diekstraksi

startRow = startRow + 1
berikutnya saya

‘ Paskan kolom secara otomatis di lembar kerja Excel
ws.Kolom.AutoFit

‘ Simpan buku kerja
Redupkan savePath Sebagai String
savePath = “C:\Path\to\save\output.xlsx”

wb.SaveAs savePath

‘ Tutup buku kerja dan bersihkan
wb.Tutup
Tetapkan ws = Tidak ada
Setel wb = Tidak ada

MsgBox “Ekstraksi massal selesai. Output disimpan ke: ” & savePath
Akhiri Sub

Fungsi GetPDFFilesInFolder(ByVal folderPath Sebagai String) Sebagai String()
‘ Dapatkan semua file PDF di folder yang ditentukan

Redupkan file() Sebagai String
Redupkan fileCount Sebagai Integer
jumlah file = 0

Redupkan Nama file Sebagai String
Nama file = Dir(jalur folder & “*.pdf”)

Lakukan Sementara Nama file <> “”
ReDim Pertahankan file (0 Ke fileCount)
files(fileCount) = Namafile

jumlah file = jumlah file + 1
Nama file = Dir
Lingkaran

DapatkanPDFFilesInFolder = file
Fungsi Akhir

Fungsi ExtractDataFromPDF(ByVal pdfPath As String) Sebagai String
‘ Ekstrak data dari file PDF menggunakan PDFsharp

‘ Buat dokumen PDF
Redupkan dokumen Sebagai PdfSharp.Pdf.PdfDocument Baru

‘ Buka file PDFnya
dokumen.Buka(pdfPath)

‘ Ekstrak teks dari setiap halaman
Redupkan Data yang diekstraksi Sebagai String
diekstrakData = “”

Redupkan halamanHitung Sebagai Integer
pageCount = dokumen.PageCount

Redupkan saya Sebagai Integer
Untuk i = 0 Ke jumlah halaman – 1
Redupkan halaman Sebagai PdfSharp.Pdf.PdfPage
halaman = dokumen.Halaman(i)

Redupkan konten Sebagai PdfSharp.Pdf.Content.PdfContentReader
konten = PdfSharp.Pdf.Content.PdfContentReader Baru(halaman)

Sementara konten.Baca()
Jika content.GetType() Adalah GetType(PdfSharp.Pdf.Content.PdfLiteral) Lalu
Redupkan literal Sebagai PdfSharp.Pdf.Content.PdfLiteral
literal = DirectCast(konten, PdfSharp.Pdf.Content.PdfLiteral)

diekstraksiData = diekstraksiData & literal.Nilai
Berakhir jika
Berakhir Sementara
berikutnya saya

‘ Tutup dokumen PDF
dokumen.Tutup

ExtractDataFromPDF = diekstrakData
Fungsi Akhir

Apa yang saya coba:

Saya telah membuat kelas di visual studio, menginstal perpustakaan PDFsharp melalui manajer paket NuGet dan membangun solusi untuk menerima DLL yang dapat saya gunakan sebagai referensi di Excel VBA. Namun ketika saya mencoba menambahkan DLL saya tidak bisa. Selanjutnya saya mencoba menambahkan DLL PDFsharp dari paket NuGet, juga gagal.
Silakan lihat video repro di sini: https://app.screencast.com/MJmEkYKUsnGsw

コメント

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