मैक्रो एक्सेल वीबीए संदर्भों में पीडीएफशार्प लाइब्रेरी डीएलएल कैसे जोड़ें


मेरे पास निम्नलिखित कोड है, हालाँकि, इसे चलाने के लिए, पीडीएफशार्प लाइब्रेरी स्थापित करना आवश्यक है और मैं एक्सेल वीबीए में संदर्भ जोड़ने में सक्षम नहीं हूँ।

उप बल्कपीडीएफएक्सट्रैक्शन()
‘संदर्भ: पीडीएफशार्प लाइब्रेरी

‘पीडीएफ फाइलों वाले फ़ोल्डर पथ को परिभाषित करें
स्ट्रिंग के रूप में मंद फ़ोल्डरपथ
फ़ोल्डरपाथ = “C:\Users\vlad.zaicescu\Desktop\PDF-to-Excel\sample_invoice”

‘एक नई एक्सेल वर्कबुक और वर्कशीट बनाएं
वर्कबुक के रूप में डिम डब्ल्यूबी
सेट wb = वर्कबुक्स.जोड़ें

डिम वर्कशीट के रूप में था
सेट ws = wb.शीट्स(1)

‘निकाले गए डेटा को सम्मिलित करने के लिए प्रारंभिक पंक्ति सेट करें
मंद प्रारंभपंक्ति पूर्णांक के रूप में
प्रारंभ पंक्ति = 1

‘फ़ोल्डर में सभी पीडीएफ फ़ाइलें प्राप्त करें
मंद पीडीएफफ़ाइलें() स्ट्रिंग के रूप में
पीडीएफफ़ाइलें = GetPDFFilesInFolder(फ़ोल्डरपाथ)

‘प्रत्येक पीडीएफ फाइल से डेटा निकालें और एक्सेल में डालें
पूर्णांक के रूप में मंद
i के लिए = LBound(pdfFiles) से UBound(pdfFiles)
स्ट्रिंग के रूप में मंद पीडीएफपाथ
पीडीएफपाथ = फोल्डरपाथ और पीडीएफफाइल्स(i)

स्ट्रिंग के रूप में मंद निकाला गया डेटा
एक्सट्रेक्टेडडेटा = एक्सट्रैक्टडेटाफ्रॉमपीडीएफ(पीडीएफपाथ)

‘निकाले गए डेटा को एक्सेल वर्कशीट में डालें
ws.Cells(startRow, 1).Value = pdfFiles(i) ‘पीडीएफ फ़ाइल नाम डालें
ws.Cells(startRow, 2).Value = निकाले गए डेटा ‘निकाले गए डेटा को सम्मिलित करें

स्टार्टरो = स्टार्टरो + 1
अगला मैं

‘ एक्सेल वर्कशीट में कॉलम को ऑटो-फ़िट करें
ws.कॉलम.ऑटोफ़िट

‘कार्यपुस्तिका सहेजें
स्ट्रिंग के रूप में मंद सेवपाथ
savePath = “C:\Path\to\save\output.xlsx”

wb.SaveAs सेवपाथ

‘कार्यपुस्तिका बंद करें और साफ़ करें
wb.बंद करें
सेट ws = कुछ नहीं
सेट wb = कुछ नहीं

MsgBox “बल्क निष्कर्षण पूरा हुआ। आउटपुट यहां सहेजा गया: ” & savePath
अंत उप

फ़ंक्शन GetPDFFilesInFolder(ByVal फ़ोल्डरपथ स्ट्रिंग के रूप में) स्ट्रिंग के रूप में()
‘निर्दिष्ट फ़ोल्डर में सभी पीडीएफ फाइलें प्राप्त करें

मंद फ़ाइलें() स्ट्रिंग के रूप में
पूर्णांक के रूप में मंद फ़ाइल गणना
फ़ाइल गणना = 0

फ़ाइल नाम को स्ट्रिंग के रूप में मंद करें
फ़ाइल नाम = Dir(फ़ोल्डरपाथ और “*.pdf”)

फ़ाइलनाम <> “” करते समय करें
ReDim फ़ाइलों को सुरक्षित रखें (फ़ाइलों की गिनती के लिए 0)
फ़ाइलें (फ़ाइल गणना) = फ़ाइल नाम

फ़ाइलगणना = फ़ाइलगणना + 1
फ़ाइल नाम = Dir
कुंडली

GetPDFFilesInFolder = फ़ाइलें
अंत समारोह

फ़ंक्शन ExtractDataFromPDF(ByVal pdfPath As String) स्ट्रिंग के रूप में
‘पीडीएफशार्प का उपयोग करके पीडीएफ फाइल से डेटा निकालें

‘ एक पीडीएफ दस्तावेज़ बनाएं
नए PdfSharp.Pdf.PdfDocument के रूप में धुंधला दस्तावेज़

‘ पीडीएफ फाइल खोलें
दस्तावेज़.खोलें(पीडीएफपाथ)

‘प्रत्येक पृष्ठ से पाठ निकालें
स्ट्रिंग के रूप में मंद निकाला गया डेटा
निकाला गया डेटा = “”

मंद पृष्ठ गणना पूर्णांक के रूप में
पृष्ठगणना = दस्तावेज़.पृष्ठगणना

पूर्णांक के रूप में मंद
i = 0 के लिए पृष्ठगणना – 1
PdfSharp.Pdf.Pdfपेज के रूप में मंद पृष्ठ
पृष्ठ = दस्तावेज़.पेज(i)

PdfSharp.Pdf.Content.PdfContentReader के रूप में मंद सामग्री
सामग्री = नया PdfSharp.Pdf.Content.PdfContentReader(पेज)

जबकि सामग्री.पढ़ें()
यदि content.GetType() GetType(PdfSharp.Pdf.Content.PdfLiteral) है तो
PdfSharp.Pdf.Content.PdfLiteral के रूप में मंद शाब्दिक
शाब्दिक = DirectCast(सामग्री, PdfSharp.Pdf.Content.PdfLiteral)

एक्सट्रेक्टेडडेटा = एक्सट्रेक्टेडडेटा और शाब्दिक.वैल्यू
अगर अंत
समाप्त जबकि
अगला मैं

‘पीडीएफ दस्तावेज़ बंद करें
दस्तावेज़.बंद करें

ExtractDataFromPDF = निकाला गया डेटा
अंत समारोह

मैंने क्या प्रयास किया है:

मैंने विज़ुअल स्टूडियो में एक क्लास बनाई है, NuGet पैकेज मैनेजर के माध्यम से पीडीएफशार्प लाइब्रेरी स्थापित की है और एक डीएलएल प्राप्त करने के लिए समाधान तैयार किया है जिसे मैं एक्सेल वीबीए में संदर्भ के रूप में उपयोग कर सकता हूं। हालाँकि, जब मैं DLL जोड़ने का प्रयास करता हूँ तो मैं नहीं कर पाता। इसके अलावा, मैंने NuGet पैकेज से PDFsharp DLL को जोड़ने का प्रयास किया, जो भी विफल रहा।
कृपया यहां रिप्रो वीडियो देखें: https://app.screencast.com/MJmEkYKUsnGsw

コメント

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