[[Vorlage(Getestet, bionic)]]
{{{#!vorlage Wissen
[:Paketinstallation_DEB: Ein einzelnes Paket installieren]
[:Packprogramme: Archive entpacken]
[:Programme kompilieren: Pakete aus dem Quellcode erstellen]
[:Terminal: Ein Terminal öffnen]
[:Editor:Einen Editor verwenden]
}}}

[[Inhaltsverzeichnis()]]

[[Bild(Wiki/Icons/terminal.png, 48, align=left)]]
[github:strider1551/djvubind:djvubind] ist ein in [:Python:] verfasstes Kommandozeilen-Werkzeug, um aus selbsterstellten '''tiff'''-Vorlagen (z.B. [:Scan Tailor:]-Bearbeitungen) [wikipedia:e-Book:e-books] im [:DjVu:]-Format zu erstellen. Das Programm setzt dabei zur Encodierung der DjVu-Daten [:minidjvu:] ein, für die durchsuchbare Textebene können [:tesseract-ocr:] oder [:Cuneiform-Linux:] verwendet werden; auch lassen sich [http://djvu.sourceforge.net/doc/man/djvused.html djvused] {en} Skript-Ausgaben verwenden, um Inhaltsverzeichnisse und Metadaten einzubinden. Zum Einsatz kommen außerdem '''djvulibre-bin''' und  [:ImageMagick:].

= Installation =

Das Paket ist in Version 1.2.1 in den Quellen vorhanden,
{{{#!vorlage Paketinstallation
djvubind
}}}

= Bedienung =
djvubind ist ein reines Kommandozeilenwerkzeug, die allgemeine Syntax im Terminal[4] lautet:

{{{#!vorlage Befehl
djvubind [OPTIONEN] /ZU/VERARBEITENDES/VERZEICHNIS
}}}

Wenn der Aufruf direkt im Vorlagen-Verzeichnis selbst erfolgt, ist die Pfadangabe nicht nötig. djvubind verarbeitet dann alle im Verzeichnis vorhandenen schwarz-weißen '''tif/tiff'''-Dateien, die in durchnummerierter Form vorliegen müssen. Neben den Textseiten kann auch ein Cover und eine Rückseite integriert werden, diese sollten im '''jpg'''-Format als '''cover_front.jpg''' bzw. '''cover_back.jpg''' vorliegen. Das Ergebnis wird dann als '''book.djvu'''-Datei ausgegeben; falls eine solche Datei schon vorliegt, wird entsprechend '''book(1).djvu''' etc. ausgegeben. Djvubind verwendet automatisch mehrere Prozesse parallel (standardmäßig einen pro CPU-Kern), wenn es auf einem Mehrkern-Rechner läuft (in der Konfigurationsdatei anpassbar). 

== Konfigurationsdatei ==
Ab Version 1.0.0 ist der Einsatz einer eigenen Konfigurationsdatei implementiert, in der etliche Optionen (auch für das standardmäßig verwendete [:minidjvu:]) angegeben werden können. Die Datei wird im Verzeichnis '''/home/<benutzer>/.config/djvubind''' unter dem Namen '''config''' abgelegt. Im Quellverzeichnis unter '''/doc/config''' oder unter '''/etc/djvubind/config''' findet sich eine Beispielversion , die umfassend kommentiert ist. Diese kann in einem Editor[5] den eigenen Bedürfnissen entsprechend angepasst werden. Angaben auf der Kommandozeile werden aber bevorzugt, sodass zum temporären Ändern der Optionen die Konfigurationsdatei nicht editiert werden muss. 

== Optionen ==
||<-2 rowclass="titel"> djvubind ||
||<rowclass="kopf"> Option || Funktion ||
|| `--bookmarks=DATEINAME`|| Zu verwendende Bookmark-Datei. Das Format sollte dem entsprechen, was `djvused  -e  'print-out‐line` ausgibt. Standardmäßig wird '''bookmark''' verwendet, wenn vorhanden. ||
||<rowclass="highlight"> `--cover-front=DATEINAME` ||Zu verwendendes Cover, Standardmäßig wird '''cover_front.jpg''' verwendet, wenn vorhanden||
|| `--cover-back=DATEINAME`|| Zu verwendende Rückseite; Standardmäßig wird '''cover_back.jpg''' verwendet, wenn vorhanden||
||<rowclass="highlight">`--metadata=DATEINAME`|| Zu verwendende Metadata-Datei. Das Format sollte dem entsprechen, was `djvused -e 'print-meta'` ausgibt. Standardmäßig wird die Datei '''metadata''' verwendet, wenn vorhanden||
||`--no-ocr`|| Keine Erstellung von Textebenen||
||<rowclass="highlight">`--ocr-engine=(tesseract|cuneiform)`|| Zu verwendendes OCR-Programm;  Standard ist Tesseract||
||`-q | --quiet`|| Keine Ausgabe von Status-Informationen||
||<rowclass="highlight"> `--cuneiform-options="OPTION(EN)"` || Option, um andere Cuneiform-Optionen zu verwenden, z.B. Sprach-Optionen, Optionen müssen in " " gesetzt werden||
|| `--tesseract-options="OPTION(EN)"` || Option, um andere Tesseract-Optionen zu verwenden, z.B. Sprach-Optionen, Optionen müssen in " " gesetzt werden||

== Andere OCR-Engines verwenden ==
Wer andere Programme zur Texterkennung verwenden möchte, sollte djvubind mit der `--no-ocr`-Option verwenden. Die Texterkennung kann dann für das erstellte Dokument mit [:ocrodjvu:] erfolgen, was sehr detailliert konfigurierbar ist, und verlässliche Unterstützung für [:tesseract-ocr:], OCRopus, [:Cuneiform-Linux:], [:GOCR:] und [:Ocrad:] liefert.

= Probleme =
Wenn es Probleme mit [:Cuneiform-Linux:] (z.B einen "buffer-overflow-Error") gibt, greift das Programm automatisch auf tesseract zurück, ohne allerdings eine ggf. gewählte Sprachangabe mit zu übernehmen. Das lässt sich das mit Verwendung einer `tesseract-options`-Sprachangabe in der Konfigurationsdatei umgehen.

Die Verwendung der Sprachoption für Cuneiform funktioniert unter [:18.04: Ubuntu 18.04] nicht, zumindest werden keine Umlaute erkannt.

Die Einbeziehung der Buchdeckel '''cover_front''' und  '''cover_back''' erfolgt nur mit der Endung '''.jpg''', Dateien mit der Endung '''.jpeg''' werden nicht integriert.

= Alternativen =
 * [:xsane2djvu:] erlaubt ein direktes Verarbeiten der Scans in das DjVu-Format mit Texterkennung aus XSane heraus; dabei können auch farbige Vorlagen verwendet werden.
 * [:pct-scanner-script:] liefert auch "automatisch" erstellte Zusammenführung von Scans im DjVu- oder PDF-Format, Texterkennung für DjVu-Dokumente ist möglich.

= Links =
 * [github:strider1551/djvubind: Projektseite]
 * [https://diybookscanner.org/forum/viewtopic.php?f=3&t=521&sid=36e18ae08a45d466444428549feefd86 DIY-Bookscanner-Foren-Diskussion] {en} zu djvubind


#tag: Grafik, Bildung, Büro, Kommunikation, djvu, eBook, OCR, Texterkennung, Python