PDF als Textdatei speichern

  • VBScript

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Achilleus.

    PDF als Textdatei speichern

    Hallo liebe VB-Paradise-Community,

    ich nutze seit längerem in einem Programm einen VBS-Code der mir ein PDF öffnet und dieses anschließend als "accesstext" speichert.

    Im Rahmen allgemeiner Aktualisierungen werden einige Rechner auf Acrobat Pro 2020 umgestellt. Leider habe ich hier das Problem das mein kleines Script nicht mehr funktioniert und er mir mit einer Fehlermeldung in Zeile 18 aussteigt. :(

    Visual Basic-Quellcode

    1. if WScript.Arguments.Count < 2 Then
    2. WScript.Echo "Error! Please specify the source path and the destination. Usage: TestCon SourcePath.xls Destination.txt"
    3. Wscript.Quit
    4. End If
    5. Dim acroAppObj : set acroAppObj = CreateObject("AcroExch.App") ' As Acrobat.AcroApp:
    6. Set myAcroDoc = CreateObject("AcroExch.AVDoc")
    7. Dim acroADocObj : Set acroADocObj = Nothing' As Acrobat.AcroAVDoc
    8. Dim acroPDocObj ' As Acrobat.AcroPDDoc
    9. Dim jsObj ' As Object
    10. Dim fsObj : Set fsObj = CreateObject("Scripting.FileSystemObject")
    11. path = Wscript.Arguments.Item(0)
    12. myAcroDoc.Open path, path
    13. Set acroADocObj = acroAppObj.GetActiveDoc ' or open pdf
    14. Set acroPDocObj = acroADocObj.GetPDDoc
    15. Set jsObj = acroPDocObj.GetJSObject
    16. lFileName = Wscript.Arguments.Item(1)
    17. If fsObj.FileExists(lFileName) Then fsObj.DeleteFile lFileName
    18. jsObj.SaveAs lFileName, "com.adobe.acrobat.accesstext" ' converts pdf to text
    19. acroADocObj.Close False
    20. Set acroADocObj = Nothing
    21. Set acroPDocObj = Nothing
    22. Set jsoObj = Nothing


    Der Vorgang bricht in Zeile 18 mit der Fehlermeldung
    -> Der Remoteprozeduraufruf ist fehlgeschlagen (800706BE) ab.
    In manchen Fällen erhalte ich noch bevor die Fehlermeldung kommt den Hinweis das "Adobe2020" nicht mehr reagiert.
    Nachdem das Script sich beendet hat, habe ich zwar ein Textfile im Ergebnis-Verzeichnis liegen, jedoch ist dieses leer.


    Meine Frage wäre nun: ?(
    Hat sich hier ab der Version 2020 etwas im Aufruf geändert? Wobei ich glaube das ich hier dann ja z.B. den Fehler erhalten müsste, das die Methode nicht bekannt ist.

    Hat jemand vielleicht einen Link zu einer Dokumentation über die Methoden des JsObjectes das ich aus "acroPDocObj.GetJSObject" erhalte?

    Gibt es noch andere Einstellungen oder Recht die hinzugefügt werden müssen z.B. in Adobe2020 oder in Windows-System damit es arbeiten kann?

    Es handelt sich um Windows 10 Rechner.
    Java ist in der aktuellsten Version installiert.

    Bei den Rechnern bei denen es läuft ist Acrobat 10 oder DC installiert, bei dem Rechner wo es gerade nicht läuft Adobe2020. Alles natürlich in der Pro-Version
    Laut unseres Admins sollen die Rechner identisch sein, nur das sich die Adobe Versionen Unterscheiden.

    In den Einstellungen von Adobe ist
    -> JavaScript aktiviert und
    -> in den erweiterten Sicherheitseinstellungen das VBS hinterlegt welches ausgeführt werden soll.

    Vielen Dank

    CodeTags korrigiert ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Hallo liebe Community,

    hier ein kleines Update meinerseits.

    Leider kann ich hierzu noch keine wirkliche Lösung präsentieren. Es scheint jedoch ein generelles Problem mit dem Vorgang in Adobe zu sein. Da das speichern des PDFs auch nicht funktioniert wenn ich dieses manuell öffne und als Text oder AcessText speichern möchte. Wenn jemand hierzu eine Idee hat, woran es in Adobe Acrobat Pro 2020 liegen kann das der Export als Text nicht möglich ist bitte gerne her damit. ?(

    Die Lösung für mich ist nun für's erste:

    Das ich das PDF für den Adobe2020 nun als HTML speichere und verarbeite. Das funktioniert nämlich. Sowohl im Adobe manuell, als auch über meine VB-Datei. :)
    Hallo Ollow_AM,

    um gedruckte PDF-Dateien als Textdateien zu exportieren verwende ich die xpdf_Tools.
    Etwas Einfacheres habe ich nicht gefunden. Der Export kann auch im Layout-Modus erfolgen, so dass die Spalten erhalten bleiben.

    Visual Basic-Quellcode

    1. Dim wsh, fso
    2. Dim Ag
    3. Dim Input, Output
    4. Dim sProgramm
    5. Set Ag = WScript.Arguments
    6. Set objWSH=WScript.CreateObject("Wscript.Shell")
    7. Set objFSO = CreateObject("Scripting.FileSystemObject")
    8. Input = Ag(0)
    9. Input = """" & input & """"
    10. Output = objfso.GetSpecialFolder(2) & "\pdftotext\"
    11. sProgramm="...\xpdf_Tool\pdftotext.exe"
    12. If objfso.FolderExists(Output)=False Then
    13. objfso.CreateFolder(Output)
    14. End If
    15. Output =Output & objfso.GetFileName(Input)
    16. Output = Left(Output,Len(Output)-Len(objfso.GetExtensionName(Output))) & "txt"
    17. Output = """" & Output & """"
    18. objfso.DeleteFile objfso.GetSpecialFolder(2) & "\pdftotext\*.*"
    19. 'Alle Seiten
    20. objWSH.Run "...\xpdf_Tool\pdftotext.exe" & " " & "-layout" & " " & Input & " " & Output
    21. 'Bestimmte Seiten
    22. 'objWSH.Run "...\xpdf-Tool\pdftotext.exe -f 4 -l 4" & " " & "-layout" & " " & Input & " " & Output
    23. WScript.Sleep(2000)


    Vielleicht ist das ja was für dich.

    Gruß Achilleus

    P.S. Pfade bitte anpassen.
    Hallo Achilleus,

    danke für Deine Rückmeldung.

    Ja es war etwas für mich. Danke für den Vorschlag. Wenn ich auf den Text-Export angewiesen bin, ist das eine Lösung, muss ich unseren Firmen-Admin nur noch überzeugen das Tool zusätzlich zu installieren :). Wenn nicht bleib ich erstmal beim HTML-Import auch wenn es bedeutet das hinterher ein paar mehr Dateien zu Bereinigen sind.

    Zumindest bis hier von Adobe eine Nachbesserung per Update oder ich herausfinde woran der Text-Export scheitert.

    MfG

    Ollow