[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor verwenden] [:Programme kompilieren: Pakete aus dem Quellcode erstellen] }}} [[Inhaltsverzeichnis()]] [[Bild(DjVu/djvu-logo.png, 80, left)]] [http://djvu.sourceforge.net/doc/man/djvudigital.html DjVuDigital] {en} ist ein Kommandozeilen-Programm zum Konvertieren von [:PDF:]-Dateien in das [:DjVu:]-Format, auch die Formate PostScript('''.ps'''), GZipped PostScript ('''.ps.gz''') und Encapsulated PostScript ('''.eps''') können verarbeitet werden. Das Programm ist Teil des [http://djvu.sourceforge.net/index.html DjVuLibre-Projektes] {en}. Es stehen eine Vielzahl von Optionen zur individuellen Anpassung zur Verfügung. Bestehende Textlayer einer '''.ps'''-Datei können erhalten werden. == Lizenzprobleme == Allerdings muss eine Version eines Ghostscript-Teibers verwendet werden, der zwar von AT&T auch unter einen Open-Source-Lizenz veröffentlicht wurde ([https://www.eclipse.org/legal/cpl-v10.html CPL-Lizenz] {en}), allerdings ist diese nicht kompatibel mit der [https://www.gnu.org/licenses/gpl.html GPL-Lizenz] {en}, unter der die Programme des DjVuLibre-Projekts und die verwendete Version von [https://www.ghostscript.com/ Ghostscript] {en} selbst gestellt wurden. Daher kann das Programm nicht rechtmäßig als Binärdatei veröffentlicht werden. Die DjVuLibre-Entwickler interpretieren allerdings die Lage so, dass es möglich ist, den GSDjVu-Treiber für Ghostscript auch mit den Inkompatibilitäten selbst zu erstellen, da die Einschränkungen nur, so ihre Interpretation, für die Weitergabe des gesamten Programms gelten, nicht aber für anderweitige Verwendung (also auch eine Modifizierung). Eine genauere Beschreibung mit Empfehlungen befindet sich auf auf [http://djvu.sourceforge.net/gsdjvu.html DjVuLibre-GSDjVu-Seite] {en}. {{{#!vorlage Warnung Eine Garantie für die Richtigkeit dieser Rechtsauffassung gibt es nicht, die Erstellung erfolgt daher aufgrund der eigenen Entscheidung, und auf eigene Gefahr. Allerdings verwies Patrick Haffner von AT&T, einer der ursprünglichen Entwickler des Verfahrens, auf der AT&T-gsdjvu-Seite selbst auf die DjVuLibre-Version für GSDjVu, insofern ist die Gefahr wohl auch wieder nicht all zu groß, zumindest solange die Version nicht veröffentlicht wird. }}} = Installation = Um DjVuDigital nutzen zu können, müssen die Pakete {{{#!vorlage Paketinstallation djvulibre-bin, universe ghostscript }}} installiert[1] werden. Um das Programm nutzen zu können, muss zunächst eine Version des Treibers aus dem Ghostscript-Quellcode und einem auf dem GSDjVu-code basierenden Patch erstellt werden, der von der [sourceforge:djvu/files/GSDjVu/:sourceforge-DjVu-Seite] {en} bezogen werden kann. Das Verfahren verwendet ein von den DjVuLibre-Entwicklern erstelltes automatisches Skript, bei dessen Ausführung nochmals ausdrücklich auf die unklaren Lizenz-Bedingungen hingewiesen wird. == Ghostscript-Treiber erstellen == Benötigt wird die aktuelle Version des [sourceforge:djvu/files/GSDjVu/:GSDjVu-Codes] {dl}, außerdem der aktuelle [https://github.com/ArtifexSoftware/ghostpdl-downloads/releases Ghostscript-Quellcode als tar.gz/tar.bz2-Archiv] {dl}, Version 8.64 oder höher (getestet unter [:18.04:Ubuntu 18.04] und [:20.04:Ubuntu 20.04] mit GSDjVu 1.10 und Ghostscript 9.25, mit aktuelleren Versionen scheiterte die Erstellung (z.B. mit 9.27, 9.50 oder 9.53) Die älteren Versionen finden sich auf [github:ArtifexSoftware/ghostpdl-downloads/releases:GitHub] {dl}). Im Verzeichnis des entpackten GSDjVu-Archiv wird ein Unterverzeichnis '''BUILD''' erstellt, das Ghostscript-Archiv wird dann dort in den Ordner '''gsdjvu-1.x/BUILD''' heruntergeladen, aber nicht entpackt! [[Vorlage(Fremd, Software)]] Außerdem sollten folgende Pakete installiert sein: {{{#!vorlage Paketinstallation gsfonts, main zlib1g-dev, main }}} Weiter müssen ggf. noch weitere Abhängigkeiten zum Erstellen von Ghostscript installiert werden:[2] {{{#!vorlage Builddeps ghostscript }}} Das Shell-Skript '''build-gsdjvu''' wird ausgeführt, dazu den gesamten Pfad angeben, z.B. {{{#!vorlage Befehl /home/BENUTZER/gsdjvu-1.X/build-gsdjvu }}} Das Skript entpackt den Quellcode, patcht den Ghostscript-Code mit dem gdevdjv-Treiber aus dem '''gsdjvu-1.X/att/'''-Verzeichnis, kompiliert Ghostscript und erhält nur die benötigten Dateien (nähere Einzelheiten kann man dem Skript selbst entnehmen). Das Skript legt diese GSDjVu-Dateien im Ordner '''BUILD/INST/gsdjvu''' ab. Es enthält u.a. die ausführbare Programmdatei '''gsdjvu''', auf die DjVuDigital zurückgreift, diese Datei sollte also in ein Verzeichnis kopiert oder per [:ln#Symbolische-Verknuepfungen:symbolischer Verknüpfung] eingebunden werden, das in der [:Umgebungsvariable#PATH-erweitern: `PATH`]-Umgebungsvariable verzeichnet ist. Beispiele: * Der Ordner '''gsdjvu''' wird mit Root-Rechten nach '''/usr/local/lib/gsdjvu''' kopiert und die Datei verknüpft (nutzbar für alle Benutzer): {{{#!vorlage Befehl sudo cp -r BUILD/INST/gsdjvu /usr/local/lib cd /usr/local/bin sudo ln -s ../lib/gsdjvu/gsdjvu gsdjvu }}} Nach einem Upgrade der Ubuntu-Version ist die letzte Aktion ggf. nicht nötig, da die alte Verknüpfung auch für den neuen Treiber erhalten bleibt, wenn die selben Verzeichnisse verwendet werden (beim Versuch erscheint eine Meldung, dass die Datei bereits existiert). * Der Ordner '''gsdjvu''' wird in das Homeverzeichnis des Benutzers installiert; die Nutzung ist damit nur für diesen Benutzer möglich (die PATH-Variable muss das Verzeichnis '''~/bin''' beinhalten): {{{#!vorlage Befehl cp -r BUILD/INST/gsdjvu ~/gsdjvu cd ~/bin ln -s ../gsdjvu/gsdjvu gsdjvu }}} {{{#!vorlage Hinweis Ggf. muss nach der Prozedur das Paket '''ghostscript''' erneut installiert werden, wenn es in anderen Anwendungen, die Ghostscript verwenden, zu Problemen kommt! }}} = Funktionsweise = DjVuDigital verwendet eine hoch entwickelte Technologie, um die [wikipedia:Rastergrafik:Rastergrafiken] der Vorlagen in eine Vordergrundebene mit bitonale Maske für Text und Schwarzweiß-Grafik einerseits, und Hintergrund, Fotos etc. andererseits zu zerlegen. Dazu wird der Ghostscript-Treiber `djvusep` verwendet, der die Daten aus den Vorlagen analysiert und aufteilt, dieser Treiber wird von dem erstellten Programm gsdjvu geliefert. Der Treiber erstellt aus dem Ergebnis ein "Datenblatt", das dann mit dem DjVuLibre-Programm [http://djvu.sourceforge.net/doc/man/csepdjvu.html csepdjvu] {en} komprimiert und zu einem DjVu-Dokument verarbeitet wird. Technische Details findet man in den [https://leon.bottou.org/publications/djvu/icdar-2001.djvu DjVuDigital-Spezifikationen] {dl} {en}. = Bedienung = DjVuDigital ist ein Kommandozeilen-Programm, die allgemeine Syntax lautet {{{#!vorlage Befehl djvudigital [OPTIONEN] EINGABEDATEI [AUSGABEDATEI] }}} Dabei wird aus der Eingabedatei ohne die Angabe eines Ausgabenamens die Datei '''EINGABEDATEI.djvu''' erstellt. Der Prozess kann über eine Vielzahl von Optionen gesteuert werden. Um die Textebene zu übertragen, muss die Option `--words` oder `--lines` verwendet werden, sonst wird die Ebene nicht ordnungsgemäß erhalten. == Optionen == ||<-2 rowclass="titel"> Optionen für DjVuDigital || || Argument || Funktion || ||<-2 rowclass="trennzeile"> ''Extraktions-Optionen'' || || `--psrotate=WINKEL` || nur für '''.ps'''-Dateien: Drehung, mögliche Werte `0, 90, 180, 270`. PDFs werden immer in Original-Ausrichtung konvertiert || || `--words` || Text aus '''.ps'''-Dateien wird extrahiert, die Position jedes Wortes wird festgehalten || || `--lines` || Text aus '''.ps'''-Dateien wird extrahiert, die Position jeder Zeile (statt der Wörter) wird festgehalten (kleiner Größenvorteil gegenüber `--words`)|| ||<-2 rowclass="trennzeile"> ''Bildqualität'' || || `--exact-color` || ermöglicht eine genauere Farbwiedergabe || || `--treshold=N` || Schwellwert für die Aufteilung nach Vorder-/Hintergrund; Werte `0` bis `100`, höhere Werte liefern mehr Informationen im Vordergrund, Standard: `80`|| || `-d`, `--dpi=AUFLÖSUNG` || erwünschte Auflösung in dpi (Standard `600`) || ||<-2 rowclass="trennzeile"> ''Sonstiges''|| || `--check` || gibt die Namen der gefundenen Hilfsprogramme für DjVuDigital aus || || `--dryrun` || gibt den Kommandozeilenaufruf für das Ghostscript-Programm aus, keine Bearbeitung || || `-q`, `--quite` || unterdrückt alle Ausgaben im Terminal || || `-v`, `--verbose` || Ausgabe aller Details, z.B. zur Fehlersuche || || `-h`, `--help` || Hilfe, öffnet die Manpage des Programms || Weiter Informationen finden sich in der [:man:Manpage] des Programms, außerdem in der '''README'''-Datei im gsdjvu-Archiv. = Probleme = Bei der Konvertierung von '''.pdf'''-Dateien mit Textlayer können "Texte" folgender Art entstehen {{{ ABCDE EBE EFEB FFF E EB FEBFEBABF FEBB B EB EB }}} Leider ist eine Abhilfe nicht bekannt; es kann nur Text aus '''.ps'''-Dateien extrahiert werden! Eine Textebene kann aber nachträglich auch mit [:ocrodjvu:] erstellt werden. Das Programm kann nur solche Eingabedateien verarbeiten, die auch für Ghostscript selbst keine Schwierigkeiten bereiten. = Alternativen = * [:pdf2djvu:] - vergleichbares Programm von [https://jwilk.net/software/ Jakub Wilk] {en}, kann allerdings nur PDF-Formate verarbeiten, bietet da aber wesentlich mehr Möglichkeiten, da alle Metadaten erhalten bleiben. * [http://djvu.sourceforge.net/doc/man/djvudigital.html DjVuDigital-Manpage]{en} * [:DjVu:]-Hauptseite * [https://leon.bottou.org/publications/djvu/icdar-2001.djvu DjVuDigital-Spezifikationen] {en} #tag: Grafik, Bildung, Büro, Kommunikation, PDF, djvu