Ubuntu 16.04 Xenial Xerus
Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
DjVuDigital 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 DjVuLibre-Projektes . Es stehen eine Vielzahl von Optionen zur individuellen Anpassung zur Verfügung. Bestehende Textlayer einer .ps-Datei können erhalten werden.
Allerdings muss eine Version eines Ghostscript-Teibers verwendet werden, der zwar von AT&T auch unter einen Open-Source-Lizenz veröffentlicht wurde (CPL-Lizenz ), allerdings ist diese nicht kompatibel mit der GPL-Lizenz , unter der die Programme des DjVuLibre-Projekts und die verwendete Version von Ghostscript 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 DjVuLibre-GSDjVu-Seite .
Eine Garantie für die Richtigkeit dieser Rechtsauffassung gibt es nicht, die Erstellung erfolgt daher aufgrund der eigenen Entscheidung, und auf eigene Gefahr. Allerdings verweist 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.
Um DjVuDigital nutzen zu können, müssen die Pakete
djvulibre-bin (universe)
ghostscript
mit apturl
Paketliste zum Kopieren:
sudo apt-get install djvulibre-bin ghostscript
sudo aptitude install djvulibre-bin 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-Seite 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.
Benötigt wird die aktuelle Version des GSDjVu-Codes , außerdem der aktuelle Ghostscript-Quellcode als tar.gz/tar.bz2-Archiv , Version 8.64 oder höher (getestet unter Ubuntu 12.04 mit GSDjVu 1.5 und Ghostscript 9.06, unter Ubuntu 14.04 mit GSDjVu 1.7 und Ghostscript 9.14, unter Ubuntu 16.04 mit GSDjVu 1.9 und Ghostscript 9.19; die ältere Versionen finden sich unter Old Releases ). 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!
Fremdsoftware kann das System gefährden.
Außerdem sollten folgende Pakete installiert sein:
gsfonts (main)
libpng12-dev (security)
zlib1g-dev (main)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install gsfonts libpng12-dev zlib1g-dev
sudo aptitude install gsfonts libpng12-dev zlib1g-dev
Weiter müssen ggf. noch weitere Abhängigkeiten zum Erstellen von Ghostscript installiert werden:[2]
Befehl zum Installieren der Build-Abhängigkeiten:
sudo apt-get build-dep ghostscript
sudo aptitude build-depends ghostscript
Unter Ghostscript 9.05/9.06 muss in der Datei ghostscript-9.0x/base/gdevdjvu.c die Zeile 84 (#include "gserror.h"
) auskommentiert oder gelöscht werden. Dazu das Archiv zunächst entpacken, die Änderung in einem Editor vornehmen, und dann alles wieder als tar.gz packen. Dieser etwas umständliche Weg ist deshalb nötig, weil das build-gsdjvu-Skript das Ghostscript-Archiv beim Aufruf entpackt und zuvor ggf. gemachte Änderungen damit wieder hinfällig werden (wer schnell ist, kann auch während des Kompiliervorganges diese Datei editieren...). Mit Ghostcript 9.14 und höher ist das nicht mehr nötig.
Danach wird das Shell-Skript build-gsdjvu ausgeführt, dazu den gesamten Pfad angeben, z.B.
/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 symbolischer Verknüpfung eingebunden werden, das in der 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):
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):
cp -r BUILD/INST/gsdjvu ~/gsdjvu cd ~/bin ln -s ../gsdjvu/gsdjvu gsdjvu
Ggf. muss nach der Prozedur das Paket ghostscript erneut installiert werden, wenn es in anderen Anwendungen, die Ghostscript verwenden, zu Problemen kommt!
DjVuDigital verwendet eine hoch entwickelte Technologie, um die 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 csepdjvu komprimiert und zu einem DjVu-Dokument verarbeitet wird. Technische Details findet man in den DjVuDigital-Spezifikationen .
DjVuDigital ist ein Kommandozeilen-Programm, die allgemeine Syntax lautet
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 für DjVuDigital | |
Argument | Funktion |
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 ) |
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 ) |
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 Manpage des Programms, außerdem in der README-Datei im gsdjvu-Archiv.
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.
pdf2djvu - vergleichbares Programm von Jakub Wilk , kann allerdings nur PDF-Formate verarbeiten, bietet da aber wesentlich mehr Möglichkeiten, da alle Metadaten erhalten bleiben. Ein Vergleich der Programme findet sich im pdf2djvu-Wiki
Diese Revision wurde am 30. August 2016 09:28 von Heinrich_Schwietering erstellt.