1.3k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich versuche mit Excel VBA den gesamten Text eines PDFs in eine
String Variable zu schreiben. Ich habe "Adobe Acrobat X Pro" aber
die Datei soll später auf Computern benutzt werden, auf denen nur
"Adobe Reader X" (10.1.8) installiert ist.

Auf meinem Computer funktioniert folgende Funktion:
Public Function ReadAcrobatDocument(strFileName As String)
As String
'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
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)
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


Die Funktion rufe ich mit folgender Zeile auf:
myString = ReadAcrobatDocument(myPDF)


Alles funktioniert super, der Text ist in der String Variable und ich
kann damit weiterarbeiten. Aber es läuft nicht auf anderen
Computern, die nur Adobe Reader X installiert haben. Die
Referenzen habe ich angeklickt.

Ich erhalte folgende Fehlermeldung bei
Set AcroApp =
CreateObject("AcroExch.App")
und verstehe nicht wieso:
ActiveX component can't create object.


Könnt ihr mir hier irgendwie weiterhelfen?

Danke und beste Grüße,
critchm!!

2 Antworten

0 Punkte
Beantwortet von
hi all ^^

Ich vermute folgendes !

Zitat:
ActiveX component can't create object.

Die installierten ActiveX Component der pro Version sind umfangreicher als die der light Version

Installiere auf allen rechnern die pro Version

Gruss Nighty
0 Punkte
Beantwortet von
Der Meinung schließe ich mich an. Ich weiß nicht ob ein reiner PDF-Reader überhaupt ActiveX Componenten mitbringt.

Da die Installation der Pro-Version auf Allen Computern aber ein teures Unterfangen ist (Lizenzen) solltest du vorher prüfen, ob

- auf den anderen Computern das Häkchen zum entsprechenden Acrobat in den Verweisen gesetzt ist
'Note: A Reference to the Adobe Library must be set in
Tools|References

- oder das entsprechende Object bei Acrobat Reader vielleicht anders heißt. Also nicht AcroExch.

Ein umfassendere Antwort kann ich dir hier leider auch nicht geben, da ich weder das eine noch das andere installiert habe.

Gruß Mr. K.
...