PDF-Dateien als durchsuchbare PDF umwandeln mit Access und Abby FineReader

  • Access

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von INOPIAE.

    PDF-Dateien als durchsuchbare PDF umwandeln mit Access und Abby FineReader

    Hallo zusammen,

    gibt es eine Möglichkeit, aus Access heraus den Abby FineReader 15 so zu starten, dass er eine PDF - Datei öffnen bzw. die Konvertierung in eine Durchsuchbare PDF-Datei startet?

    Also manuell geht das auf jeden Fall.

    Ich habe nur eine große Access-PDF-Sammlung, in der ich auch festgehalten habe, ob es eine OCR-Texterkennung schon gibt (also sich der Text markieren lässt).

    Jetzt möchte ich den Erkennungs- und Umwandlungsprozess aber gerne aus Access (von mir aus auch Excel) starten. Der Prozess soll wie folgt aussehen

    1. Öffnen der PDF-Datei mit Abby bzw. Aufruf der Umwandlungsfunktion (geht man. über den Explorer mit rechter Maustaste und dann den passenden Kontextmenüeintrag anklicken)
    2. Bestimmen des Zielverzeichnisses (Ist eigentlich immer das Quellverzeichnis)
    3. Starten der Umwandlung
    4. Die alte Datei löschen und die neue umbenennen. Den Vermerk auf OCR-Kennung = true setzen (Das geht ja recht einfach in Access bzw. Excel)
    5. Die nächste Datei öffnen usw.

    Wenn das nicht geht, dann würde evtl. eine Batchdatei gehen, in der dann alles notwendige drin steht? Wie müsste diese dann aussehen? (Erstellen ist dann das kleinste Problem)

    Würde mich sehr freuen, wenn es hier eine Möglichkeit geben würde. Ich bin mal gespannt auf eure Antworten,

    Gruß

    Volker
    Wenn ich das richtig sehe, kannst Du Abby Fine Reader als Kommandozeilen Werkzeug verwenden. help.abbyy.com/en-us/finereade…uide/commandline_convert/

    Du suchst Dir die entsprechende Kommandozeile und startest diese von VBA aus.

    Hier ein Beispiel von mir mit dem PDF-Werkzeug pdf24-DocTool.exe

    Visual Basic-Quellcode

    1. Option Explicit
    2. #If Win64 Then
    3. Private Declare PtrSafe Function OpenProcess Lib "kernel32.dll" ( _
    4. ByVal dwDesiredAccess As Long, _
    5. ByVal bInheritHandle As Long, _
    6. ByVal dwProcessId As Long) As Long
    7. Private Declare PtrSafe Function CloseHandle Lib "kernel32.dll" ( _
    8. ByVal hObject As Long) As Long
    9. Private Declare PtrSafe Function WaitForSingleObject Lib "kernel32.dll" ( _
    10. ByVal hHandle As Long, _
    11. ByVal dwMilliseconds As Long) As Long
    12. #Else
    13. Private Declare Function OpenProcess Lib "kernel32.dll" ( _
    14. ByVal dwDesiredAccess As Long, _
    15. ByVal bInheritHandle As Long, _
    16. ByVal dwProcessId As Long) As Long
    17. Private Declare Function CloseHandle Lib "kernel32.dll" ( _
    18. ByVal hObject As Long) As Long
    19. Private Declare Function WaitForSingleObject Lib "kernel32.dll" ( _
    20. ByVal hHandle As Long, _
    21. ByVal dwMilliseconds As Long) As Long
    22. #End If
    23. Private Const PROCESS_QUERY_INFORMATION = &H400
    24. Private Const SYNCHRONIZE = &H100000
    25. Private Const INFINITE As Long = &HFFFFFFFF
    26. Sub pdfVerarbeiten()
    27. Dim strProfile As String
    28. Dim strPDF24 As String
    29. Dim strSpeicherPfad As String
    30. Dim strDatei As String
    31. strProfile = "meinProfil"
    32. strPDF24 = "d:\Program Files\PDF24"
    33. strSpeicherPfad = "D:\test"
    34. Dim strCMD As String
    35. strDatei = "D:\Test\Wichtig.docx"
    36. strCMD = """" & strPDF24 & "\pdf24-DocTool.exe"" -convertToPDF -profile " & strProfile & " -outputDir """ & strSpeicherPfad & """ """ & strDatei & """"
    37. Dim lngProcessId As Long, lngHwnd As Long
    38. Dim lngProcID As Long
    39. lngProcessId = Shell(strCMD, vbNormalFocus)
    40. lngProcID = OpenProcess(SYNCHRONIZE + PROCESS_QUERY_INFORMATION, 0&, lngProcessId)
    41. Call WaitForSingleObject(lngProcID, INFINITE)
    42. Call CloseHandle(lngProcID)
    43. End Sub


    Die Kommandozeile wird in Zeile 45 zusammengebaut und in den Zeilen 47-54 verarbeitet.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).