Как извлечь номер счета и дату счета из файла PDF с помощью Excel VBA? У меня есть весь мой готовый код, который ищет указанный файл PDF (файл PDF счета) в каталоге, где хранится большое количество счетов. Я только хочу извлечь номер счета и дату счета из этого файла, так что это будет только операция только для чтения. Счет-фактура генерируется системой, и поэтому нет никакого рукописного текста или значений. Я искал десятки решений здесь, но ни одно из них не отвечает моему требованию.
Я понимаю, что мне не нужен Acrobat Writer, установленный на моей машине, и установки Acrobat Reader должно быть достаточно. Пожалуйста, исправьте меня, если я ошибаюсь.
Я попробовал приведенный ниже код, опубликованный другим членом сообщества, чтобы сначала открыть файл PDF и извлечь его содержимое в текстовую строку, чтобы я мог использовать функцию instr для извлечения номера счета из этой строки, добавив несколько дополнительных строк кода, но, к сожалению, код застревает в строке If objAVDoc.Open(strFilename, "") Then
и выдает сообщение, которое говорит
«Activex Compnent не может создать объект».
Sub CallMyFunction()
Dim myPDF As String
myPDF = "C:\Users\syed\Desktop\invoice.pdf"
getTextFromPDF (myPDF)
End Sub
Function getTextFromPDF(ByVal strFilename As String) As String
Dim objAVDoc As New AcroAVDoc
Dim objPDDoc As New AcroPDDoc
Dim objPage As AcroPDPage
Dim objSelection As AcroPDTextSelect
Dim objHighlight As AcroHiliteList
Dim pageNum As Long
Dim strText As String
Dim tCount As Long
strText = ""
If objAVDoc.Open(strFilename, "") Then
Set objPDDoc = objAVDoc.GetPDDoc
For pageNum = 0 To objPDDoc.GetNumPages() - 1
Set objPage = objPDDoc.AcquirePage(pageNum)
Set objHighlight = New AcroHiliteList
objHighlight.Add 0, 10000 ' Adjust this up if it's not getting all the text on the page
Set objSelection = objPage.CreatePageHilite(objHighlight)
If Not objSelection Is Nothing Then
For tCount = 0 To objSelection.GetNumText - 1
strText = strText & objSelection.GetText(tCount)
Next tCount
End If
Next pageNum
objAVDoc.Close 1
End If
getTextFromPDF = strText
End Function