[[Vorlage(Getestet, noble)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme kompilieren: Pakete aus dem Quellcode erstellen] [:Packprogramme: Archive entpacken] [:Rechte: Rechte für Dateien und Ordner ändern] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [https://jwilk.net/software/ocrodjvu ocrodjvu] {en} ist eine Kommandozeilen-Werkzeug zum Erstellen einer versteckten Textlage für [:DjVu:]-Daten, das auf [http://djvu.sourceforge.net/ DjVuLibre] {en} fußt. Dazu können die Programme [:tesseract-ocr:], [:Cuneiform-Linux:] [:GOCR:] und/oder [:Ocrad:] für die eigentliche Texterkennung genutzt werden. Der Wrapper, verfasst in [:Python:], wurde u.a. für das polnische [http://poliqarp.wbl.klf.uw.edu.pl/slownik-polszczyzny-xvi-wieku/ poliqarp-Projekt] {en} eingesetzt. ocrodjvu benötigt eine Python-2.7-Installation, für [:24.04:] eine Python-3.x Version. = Installation = Voraussetzung zur Nutzung ist mindestens ein Texterkennungsprogramm, nutzbar sind {{{#!vorlage Paketinstallation cuneiform, multiverse, optional tesseract-ocr, universe, sowie die gewünschten [:tesseract-ocr#Installation:Sprachpakete] gocr, universe, optional ocrad, universe, optional }}} [[Vorlage(Fremd, Software, "")]] Da Python 2.7 für [:24.04:Ubuntu 24.04] nicht mehr in den Quellen vorhanden ist, kann das Programm nur über auf Python-3.x portierte Versionen installiert werden. Eine Python-3.xx-Installation ist Voraussetzung zur Nutzung. Dann kann der Quellcode von '''python-djvulibre''', der benötigt wird, von [github:FriedrichFroebel/python-djvulibre:github] {dl} bezogen werden, das darin befindliche Skript '''setup.py''' ausführbar gemacht werden und dann z.B. mit {{{#!vorlage Befehl sudo python3 setup.py install }}} installiert werden. Das eigentlich Programm [https://pypi.org/project/ocrodjvu/#files ocrodjvu] {en} {dl} wird ebenfalls als Quellcode heruntergeladen und dann auf dieselbe Weise erstellt: {{{#!vorlage Befehl sudo python3 setup.py install }}} Eine Installationsversuch mit [:pipx:] scheiterte in beiden Fällen. = Bedienung = Die allgemeine Syntax auf der Kommandozeile[5] lautet {{{#!vorlage Befehl ocrodjvu {-o | --save-bundled} AUSGABE.djvu [OPTION(EN)...] EINGABE.djvu }}} zur Erstellung eines [:DjVu#bundled-documents:bundled]-Dokuments, bzw. {{{#!vorlage Befehl ocrodjvu {-i | --save-indirect} INDEX-DATEI [OPTION(EN)...] EINGABE.djvu }}} um ein [:DjVu#indirect-documents:indirect]-Dokument zu erstellen. Dazu sollte ein Ordner mit dem Namen der Index-Datei existieren, in den dann die Indexdatei selbst und alle weiteren Dateien abgelegt werden. Ansonsten werden alle Daten im gerade genutzten Verzeichnis abgelegt. Um z.B. mit [:XSane:] o.ä. selbsterstellte und mit [:pdf2djvu:] oder [:DjVuDigital:] ins DjVu-Format konvertierte PDF-Dateien mit einer Textlage zu versehen, ist die Option `--render all` nötig, da die standardmäßig verarbeitete [:DjVu#Vordergrund:bitonale] Lage (`mask`) nicht vorhanden ist, und ocrodjvu eine Fehlermeldung ausgibt. Das gilt auch für farbige mit [:gscan2pdf:] erstellte DjVu-Dateien ohne Textlage. Das Programm [:xsane2djvu:] verwendet ocrodjvu, um direkt die Textlage aus der dort erstellten "foreground-mask" für ein gescanntes Dokument zu erstellen. == djvu2hocr und hocr2djvused == Neben dem Hauptprogramm befinden sich noch die Kommandozeilenwerkzeuge djvu2hocr und hocr2djvused in dem Paket. Mit djvu2hocr lassen sich die Textinformationen eines bestehenden DjVu-Dokuments auslesen und in eine [wikipedia:HOCR_(Standard):hOCR-Datei] (wie sie z.B. auch tesseract und cuneiform erstellen können) überführen. Aus einer solchen Datei lässt sich mit [:ExactImage#hocr2pdf:hocr2pdf] eine Textlage für eine durchsuchbare PDF-Datei erstellen. Diese Funktion kann mit [:djvu2pdf:] zur Umwandlung von DjVu-Dateien in PDF-Dateien verwendet werden, bei denen die Textebene erhalten bleibt. hocr2djvused kann genutzt werden, um aus hOCR-Daten die Textinformationen auszulesen und diese in ein djvused-Skript zu überführen, das dann bearbeitet und für die Erstellung von Textlagen für DjVu-Dateien verwendet werden kann (zur Verwendung derartiger Skripte siehe [:djvused:]). Nähere Informationen zur Verwendung finden sich in den manpages zu den Programmen. == Optionen für ocrodjvu == Das Programm kann durch vielfältige Optionen gesteuert werden. ||<-2 rowclass="titel"> Optionen für ocrodjvu || || Argument || Funktion || ||<-2 rowclass="trennzeile"> ''OCR-Anwendungen''|| || `--list-engines` || listet die installierten OCR-Anwendungen auf|| || `--engine OCR-ANWENDUNG --list-languages` || listet die installierten Sprachen für die jeweiligen OCR-Programme auf || || `--engine OCR-ANWENDUNG` || zu verwendendes OCR-Programm (Standard: `tesseract`)|| || `--language SPRACHKÜRZEL` || zu verwendende Sprache (Standard `eng`)|| ||<-2 rowclass="trennzeile"> ''zusätzliche spezielle Erkennungsfunktionen'' || || `--ocr-only` || Seiten ohne Texterkennung werden nicht gespeichert|| || `--clear-text` || vorher bereits existierender Text wird entfernt|| || `--render {foreground,all,mask}` || Angabe, welche Ebene bearbeitet werden soll, sinnvoll z.B. für fehl-gesplittete Dateien (Standard: `mask`)|| || `-p SEITENZAHLEN/BEREICHE`, `--pages SEITENZAHLEN/BEREICHE` || Seiten/Bereiche, die bearbeitet werden sollen, durch Kommata getrennt (z.B. `1-7, 9, 13-15`)|| || `-t {lines,words,chars}`, `--details {lines,words,chars}` || Angabe zu Erkennungsdetails - Zeilen, Wörter oder Buchstaben (Standard: `words`)|| || `--word-segmentation {simple,uax29}` || zu verwendender Wort-Aufteilungs-Algorithmus, jede zusammenhängende Zeichenfolge oder [https://unicode.org/reports/tr29/ uax29] {en}|| ||<-2 rowclass="trennzeile"> ''mögliche Ausgabeformen'' || || `-o DATEINAME`, `--save-bundled DATEINAME` || Resultat als mehrseitiges "bundled"-Dokument speichern || || `-i INDEX DATEINAME`, `--save-indirect INDEX-DATEINAME` || Resultat als mehrseitiges "indirect"-Dokument speichern || || `--save-script DATEINAME` || Resultate werden als Skript für [:djvused:] ausgegeben || || `--in-place` || Resultate werden direkt im Terminal ausgegeben|| || `--dry-run` || Testdurchlauf, keine Änderungen an den Daten || ||<-2 rowclass="trennzeile"> ''Sonstiges''|| || `-D`, `--debug` || Debugging, temporäre Dateien bleiben zur Kontrolle erhalten|| || `-j [N]`, `--jobs [N]` || Anzahl der parallel auszuführenden OCR-Prozesse|| || `--help` || Hilfe, listet die möglichen Optionen auf || || `--version` || gibt die Versionsnr. des Programms aus || Weitere Informationen liefert die [:man:Manpage] des Programms. = Probleme = == Auflösung zu hoch == Ggf. funktioniert ocrodjvu bei Vorlagen mit Auflösungen höher als 300 dpi insbesondere bei Verwendung von Cuneiform nicht einwandfrei und stürzt ab; bis 300 dpi sollte es aber kein Probleme geben. Ggf. hilft es, das Programm mit dem Befehl {{{#!vorlage Befehl ocrodjvu [OPTION(EN)]