4
votes

I have the following codes to read in contents from a PDF file in Excel VBA:

'Note: A Reference to the Adobe Library must be set in Tools|References!
Dim AcroApp As CAcroApp, AcroAVDoc As CAcroAVDoc, AcroPDDoc As CAcroPDDoc
Dim AcroHiliteList As CAcroHiliteList, AcroTextSelect As CAcroPDTextSelect
Dim PageNumber, PageContent, Content, i, j
Set AcroApp = CreateObject("AcroExch.App")
Set AcroAVDoc = CreateObject("AcroExch.AVDoc")
If AcroAVDoc.Open(strFileName, vbNull) <> True Then Exit Function
' The following While-Wend loop shouldn't be necessary but timing issues may occur.
While AcroAVDoc Is Nothing
  Set AcroAVDoc = AcroApp.GetActiveDoc
Wend
Set AcroPDDoc = AcroAVDoc.GetPDDoc
For i = 0 To AcroPDDoc.GetNumPages - 1
  Set PageNumber = AcroPDDoc.AcquirePage(i)
  Set PageContent = CreateObject("AcroExch.HiliteList")
  If PageContent.Add(0, 9000) <> True Then Exit Function
  Set AcroTextSelect = PageNumber.CreatePageHilite(PageContent)
  ' The next line is needed to avoid errors with protected PDFs that can't be read
  On Error Resume Next
  For j = 0 To AcroTextSelect.GetNumText - 1
    Content = Content & AcroTextSelect.GetText(j)
  Next j
Next i
ReadAcrobatDocument = Content
AcroAVDoc.Close True
AcroApp.Exit
Set AcroAVDoc = Nothing: Set AcroApp = Nothing

End Function

Sub demo()

    Dim str As String
    str = ReadAcrobatDocument("C:\Desktop\asdf.pdf")

End Sub

However, I am getting the runtime 429 error at

Set AcroApp = CreateObject("AcroExch.App")

What is wrong? I have Adobe Reader X and the references I've checked are:

Acrobat Access 3.0 Type Library AcroBrokerLib AcroIEHelper 1.0 Type Library AcroIEHelperShim 1.0 Type Library Adobe Acrobat Browser Control Type Library 1.0 Adobe Acrobat 10.0 Type Library Adobe Reader File Preview Type Library

1
Why are you using CreateObject("AcroExch.App") and not the constructor? If you're including a reference to that library, you don't need to use CreateObject("AcroExch.App"). - rory.ap
What should the constructor be? - Mariska
I don't know. You're the one who as access to the Adobe API. Does it have any documentation? I would assume it's just a parameter-less constructor. - rory.ap
I tried "Set AcroApp = New AcroApp" and the same error occurred.. - Mariska
That error usually occurs when the class doesn't exist. Are you sure you have all the appropriate DLLs registered? - rory.ap

1 Answers

12
votes

From the very first result in Google for the search query:

createobject acroexch.app error 429

You cannot do this with Adobe Reader, you need Adobe Acrobat:

This OLE interface is available with Adobe Acrobat, not Adobe Reader.

https://forums.adobe.com/thread/657262