Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
29.11.2021, 15:11:06

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
Statistiken
  • Beiträge insgesamt: 765134
  • Themen insgesamt: 61385
  • Heute online: 630
  • Am meisten online: 2287
  • (22.01.2020, 19:20:24)
Benutzer Online

Autor Thema: [gelöst]  Stapelverarbeitung mit ocrmypdf  (Gelesen 473 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

[gelöst] Stapelverarbeitung mit ocrmypdf
« am: 08.10.2021, 15:38:34 »
Hallo ihr Lieben,

ich habe mal wieder eine Verständnisfrage: Ich möchte mit ocrmypdf PDF Dokumente OCR-mäßig aufbereiten lassen. Aus einem PDF mit gescannten Inhalt wird dann ein PDF mit durchsuchbaren Test. Der Aufruf erfolgt zum Beispiel wie folgt:
ocrmypdf -l deu Scan_20211007_134527.pdf test.pdfWenn ich aber nun Stapel abarbeiten lassen möchte, müsste ich ja zum Beispiel folgendes aufrufen:
ocrmypdf -l deu *.pdf
Wie kann ich nun die Ausgabedatei gleich benennen wie die Eingabedatei? Gibt es dafür eine Variable?

Ich denke da an sowas:
ocrmypdf -l deu *.pdf ocr/$1.pdf
Ich hoffe ich habe mich da halbwegs verständlich ausgedrückt...

Alle Gute!

Christian
« Letzte Änderung: 10.10.2021, 22:17:31 von c77ar »

Re: Stapelverarbeitung mit ocrmypdf
« Antwort #1 am: 08.10.2021, 16:27:00 »
parallel --tag -j 2 ocrmypdf '{}' 'output/{}' ::: *.pdf gefunden in
https://ocrmypdf.readthedocs.io/en/latest/batch.html
(nur gelesen, nicht getestet)

Hinweise zur Installation:
https://wiki.ubuntuusers.de/OCRmyPDF/#Installation

PDF-Dateien, die direkt aus LibreOffice erstellt wurden, sind in der Regel keine "grafischen" PDF-Dateien und lassen sich auch so durchsuchen. Eine zusätzliche Textlage ist daher nicht nötig.
« Letzte Änderung: 08.10.2021, 16:30:11 von aexe »

Re: Stapelverarbeitung mit ocrmypdf
« Antwort #2 am: 08.10.2021, 18:26:34 »
mkdir output; for i in *.pdf; do ocrmypdf -l deu --force-ocr "$i" output/"$i"; donearbeitet alle im Verzeichnis befindlichen *.pdf-Dateien ab und speichert diese mit identischen Namen im zuvor erstellten Unterverzeichnis "output".

Re: Stapelverarbeitung mit ocrmypdf
« Antwort #3 am: 08.10.2021, 19:14:27 »
und ich mach das immer so
find . -printf '%p' -name '*.pdf' -exec ocrmypdf -l deu --rotate-pages '{}' '{}' \;der sucht auch ein ganzen Ordner durch und bearbeitet alle pdf's. Wenn er schon einen Text-Layer findet, überspringt er die Datei.

Re: Stapelverarbeitung mit ocrmypdf
« Antwort #4 am: 08.10.2021, 23:12:27 »
Man könnte auch unter ~.local/share/nemo/scripts eine Datei anlegen, z.B. mit dem Namen "ocr" und dem Inhalt:
ocrmypdf -l deu $@Der Datei gibst du den 757 mod und markierst im Dateimanager alle Dateien, die bearbeitet werden sollen. Dann rufst du ocr über das Kontextmenü (also per Rechtsklick) auf und solltest alle ausgewählte Dateien entsprechend bearbeitet haben.

Diese Möglichkeit der Skript-Anwendung über das Kontextmenü hab ich vor einiger Zeit in einem anderen Thread aufgeschnappt und verwende das immer öfter  8)

Re: Stapelverarbeitung mit ocrmypdf
« Antwort #5 am: 10.10.2021, 22:17:21 »
Leute, ihr seit der Hammer! @aexe: Asche auf mein Haupt! Das wäre in der Tat leicht zu finden gewesen!

Danke und schönen Abend euch!

Re: Stapelverarbeitung mit ocrmypdf
« Antwort #6 am: 10.10.2021, 22:27:11 »
Man könnte auch unter ~.local/share/nemo/scripts eine Datei anlegen, z.B. mit dem Namen "ocr" und dem Inhalt:
ocrmypdf -l deu $@Der Datei gibst du den 757 mod und markierst im Dateimanager alle Dateien, die bearbeitet werden sollen. Dann rufst du ocr über das Kontextmenü (also per Rechtsklick) auf und solltest alle ausgewählte Dateien entsprechend bearbeitet haben.

Diese Möglichkeit der Skript-Anwendung über das Kontextmenü hab ich vor einiger Zeit in einem anderen Thread aufgeschnappt und verwende das immer öfter  8)

Das habe ich gemacht, es funktioniert aber nicht. In top sieht man, das ocrmypdf kurz aktiv wird, die Datei bleibt aber unverändert. ist $@ die Variable für die ausgewählte(n) Datei(en)? Beim regulären Aufruf von ocrmypdf muss ich noch die Ausgabedatei angeben. Oder bin ich da auf dem Holzweg?

Re: Stapelverarbeitung mit ocrmypdf
« Antwort #7 am: 10.10.2021, 23:35:30 »
Du hast zwei Einzeiler angegeben bekommen, die alle Dateien im aktuellen Verzeichnis umwandeln Einfacher geht es wirklich nicht.
Ansonsten gibt es hier viel zu lesen.
https://ocrmypdf.readthedocs.io/en/latest/
https://ocrmypdf.readthedocs.io/en/latest/batch.html#batch-jobs
Da hab ich auch meinen Einzeiler her.

Re: Stapelverarbeitung mit ocrmypdf
« Antwort #8 am: 11.10.2021, 09:00:16 »
Die Einzeiler funktionieren auch top! Mir ging es um den Beitrag bezüglich des Kontextmenüs.

Re: Stapelverarbeitung mit ocrmypdf
« Antwort #9 am: 11.10.2021, 16:17:49 »
Also noch mal zu der Kontextmenü-Option:

Sry, habe übersehen, dass der command noch ein positionales output-Argument hat.
Ich kann dir zwei Varianten eines Scripts zeigen,
dass du unter dem angegebenen Pfad speichern und auf mod 757 setzen musst,
die ich auch gerade versucht habe und bei mir funktionieren sie.

Die erste Variante: bearbeitete .pdf-Datei in einen als "ocr" bennanten Unterordner schreiben.
Das Skript muss folgenden Inhalt haben:
DATEINAME=$@
mkdir ./ocr

ocrmypdf $DATEINAME ./ocr/$DATEINAME

Die zweite Variante: (von mir bevorzugt) bearbeitete .pdf-Datei als "DATEINAME_ocr.pdf" im selben Verzeichnis wie die Input-Datei abspeichern.
Das Skript muss folgenden Inhalte haben:
INPUT=$@
DATEINAME=$(echo $INPUT | sed 's/\./\t/' |awk '{print $1}')
ENDUNG="_ocr.pdf"
OUTPUT="$DATEINAME$ENDUNG"

ocrmypdf $INPUT $OUTPUT

PS.: das "-l deu" solltest du ohne Probleme hinzufügen können,
bei mir hab ich das jetzt weggelassen, weil ich dafür anscheinend weitere Pakete hätte installieren müssen.