Hallo, ich habe ein PDF und möchte dieses mit einem Kommandozeilenaufruf in Bilddateien umwandeln.
Dazu verwende ich DocTool mit folgendem Befehl "pdf24-DocTool.exe" -applyProfile -profile "user/pdf2jpg" -outputFile "test.jpg" "test.pdf" -noProgress
Anschließend mache ich mit tesseract eine OCR Erkennung...
Meine Einstellungen im Profil "pdf2jpg" sind Ausgabe als JPG, Grau (8-Bit), 100% Qualität und 300 DPI... Dasselbe PDF habe ich mit der PDF24 Toolbox "PDF in Bilder umwandeln" mit den Einstellungen JPG Grau 300 DPI Qualität 100 umgewandelt.
Bei den DocTools JPG Files funktioniert die OCR Erkennung (ich suche nach einem Ausdruck mit Regex) bei 3 von 5 Files. Bei den Toolbox generierten JPG Files funktioniert die OCR Erkennung bei 5 von 5 Files. Optisch sehe ich dass die JPG Datei aus der Toolbox geglättet wirkt,.. Weichgezeichnet und ca. 10% kleiner ist als die DocTool Variante.
Gibt es eine Möglichkeit die Umwandlung der Toolbox mittels Commandline anzustoßen?
Vielen Dank im Voraus!
Faktisch kann man die Toolbox auf über die Kommandozeile verwenden. Dazu muss man vorher eine Job-Datei im JSON Format erstellen und diese dann von der Toolbox bearbeiten lassen.
pdf24-Toolbox.exe -processJob "JOB_FILE" "OUTPUT_FILE"
JOB_FILE ist die Job-Datei im JSON Format.
OUTPUT_FILE ist die Datei unter der das Ergebnis gespeichert wird. Diese Datei ist ebenfalls eine JSON-Datei, in der alle Informationen zum Ergebnis enthalten sind.
Wie so eine Job-Datei auszusehen hat, kann man folgendermaßen ermitteln:
Wenn man in der Toolbox einen Job bearbeiten lässt, dann legt die Toolbox eine Job-Datei im Temp-Verzeichnis des Benutzers an. Dieses Temp-Verzeichnis ist hier zu finden:
C:\Users\BENUTZERRNAME\AppData\Local\Temp\PDF24
Eine Job-Datei der Toolbox sieht z.b. so aus:
toolboxJob_1_1004229421_2637493164.json
Wenn ich einen PDF Datei von der Toolbox in in JPG-Dateien umwandele, dann wird z.b. folgende Job-Datei erstellen:
{
"action": "convertPdfTo",
"fileInfos": [{
"file": "C:/Users/XXXX/AppData/Local/Temp/PDF24/ebb_0_1004215406_1620285037.pdf",
"name": "images.pdf",
"size": 757850
}],
"imageQuality": 100,
"outputFileType": "jpg",
"colorModel": "",
"dpi": 300
}
Ich habe obige JOB-Datei um nicht relevante Einträge gekürzt, denn für die Umwandlung per Kommandozeile sind nicht alle Einträge, die von der Toolbox angelegt werden, nötig.
Mit Obiger Job-Datei kann man dann ein PDF von der Toolbox in JPG-Datei umwandeln.
Die Ergebnis-JSON-Datei muss man dann noch einlesen, um die einzelnen JPG Dateien zu ermitteln.
Den hier beschriebenen Weg kann man für alle Funktionen, die die Toolbox bietet, anwenden. Primär benötigt man den Inhalt der Job-Datei. Wenn man den Inhaltermitteln möchte, also folgendes machen:
- Eine entsprechende Funktion in der Toolbox ausführen.
- Im Temp-Verzeichnis die Job-Datei ermitteln, anschauen und um nicht relevante Einträge kürzen.
- Dann selber JOB-Dateien erstellen und per Kommandozeile bearbeiten lassen.
Hmm, das muss ich erst mal prüfen, wie sich dies hier verhält. Eventuell muss hier dann noch mal nachgebessert werden, wenn die Dateien gelöscht werden. Ich prüfe das.
Danke!
Beim absenden des Befehls wird der Java Aufruf dargestellt.
Ich habe jetzt mit dem Befehl
"C:/Program Files/PDF24/jre/bin/java.exe" -cp "C:/Program Files/PDF24/lib/jar*" -Dwindows.acp=1252 -XX:MaxRAMPercentage=80 "org.pdf24.PdfRenderer" "-dpi=300" "-imageQuality=100" "-imageFormat=jpg" "-imageColorType=gray" "Input.pdf" "output_folder"
einen Workaround gefunden.
Diese Lösung reicht mir 🙂
nur zur Info..
Danke!!
Vielen Dank! Mit diesem Job hab ich es geschafft die grafiken zu erzeugen. Sobald der Job durchgelaufen ist, werden die TEMP Dateien aber wieder gelöscht. Somit sind die Dateien die im Output json angeführt sind schon wieder gelöscht wenn ich darauf zugreifen möchte. Kann ich der Toolbox einen Ausgabeordner mitgeben, damit die Dateien dort landen und auch nicht gelöscht werden?
Vielen Dank im Voraus