[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Packprogramme: Archive entpacken] [:Programme kompilieren: Pakete aus dem Quellcode erstellen] [:Terminal: Ein Terminal öffnen] [:Programme starten: Ein Programm ohne Menüeintrag starten] [:Menüeditor: Programme zum Menü hinzufügen] }}} [[Inhaltsverzeichnis()]] [[Bild(djvusmooth/djvusmooth-logo.png, 80, left)]] [https://jwilk.net/software/pdf2djvu pdf2djvu] {en} ist ein mächtiges Kommandozeilenwerkzeug zum Konvertieren von [:PDF:]-Dateien in das [:DjVu:]-Format. Die Dateien können sowohl als "bundled"- als auch als "indirect"-Dokumente ausgegeben werden; es stehen eine Vielzahl von Optionen zur individuellen Anpassung zur Verfügung. Bestehende Grafiken, Textlayer, Inhaltsverzeichnisse ("Outlines"), Hyperlinks und Metadaten (auch [https://www.adobe.com/products/xmp/ XMP] {en}) bleiben erhalten. Es können auch "gescannte" '''.pdf'''-Dateien ohne Textlayer verarbeitet werden, allerdings entstehen dann keine [:DjVu#Aufbau-des-Formats:mehrlagigen] DjVu-Dokumente. = Installation = Das folgende Paket muss installiert[1] werden: {{{#!vorlage Paketinstallation pdf2djvu, universe }}} == Manuelle Installation == Die Version in den Paketquellen ist in den offiziellen Quellen ggf. veraltet, ein aktuelle Version kann aus dem [github:jwilk/pdf2djvu:Quellcode] {dl} erstellt werden. Das Archiv herunterladen und entpacken[2]. Das Programm wird standardmäßig kompiliert und installiert[3], ggf. zuvor die Abhängigkeiten, z.B. im Terminal[4]: {{{#!vorlage Builddeps pdf2djvu }}} auflösen. Im der aktuellen (Januar 2020) Version des Sourcecodes muss vor dem `configure`-Schritt zunächst ein '''autogen'''-Skript aufgerufen werden, welches im Unterverzeichnis '''/private/''' liegt, um ein '''configure'''-Datei zu erstellen. Dazu im im entpackten Hauptverzeichnis den Befehl {{{#!vorlage Befehl ./private/autogen }}} aufrufen; ggf. muss zuvor '''autoconf'''/'''dh-autoreconf''' installiert werden. = Funktionsweise = pdf2djvu verwendet folgenden "naïven", aber sehr effektiven, Algorithmus, um die [:DjVu#Aufbau-des-Formats:Lagen] zu produzieren: Für jede Seite des Dokumentes wird zunächst eine vollständige [wikipedia:Rastergrafik:] erstellt. Außerdem wird eine zweite Version gerastert, für die die Elemente Text, bitonal gerasterte Grafik ("lineart") und Vektor-Elemente (Ausnahme: Füllfarben großer Flächen, also Hintergrund etc.) ausgelassen werden. Die beiden Grafiken werden dann Pixel für Pixel abgeglichen. Wenn die Farben der entsprechenden Pixel übereinstimmen, wird der Pixel der Hintergrundebene zugerechnet, ansonsten wird er als Teil des Vordergrundes verwendet. Standardmäßig werden alle in der PDF-Datei enthaltenen Daten, also das Inhaltsverzeichnis, Hyperlinks, vorhandene Textebene, bei der Konvertierung mit übernommen, als Metadaten werden die Angaben zum Titel, Autor, Thema, Erstellsoftware, Producer, Erstell- und Bearbeitungsdatum ausgelesen. Als Auflösung wird 300 dpi verwendet. Die Datei wird als (mehrseitiges) [:DjVu#bundled-documents:bundled]-Dokument konvertiert. = Bedienung = Die allgemeine Syntax auf der Kommandozeile[4] lautet {{{#!vorlage Befehl pdf2djvu -o AUSGABE.djvu [OPTIONEN] EINGABE.pdf }}} Ohne weitere Angabe von Optionen wird aus der angegebenen '''EINGABE.pdf''' im selben Verzeichnis eine '''AUSGABE.djvu'''-Datei erstellt. Wenn indirekte Dokumente erstellt werden sollen, wird die Angabe des Verzeichnisses zum Ablegen der einzelnen Daten benötigt; dieses Verzeichnis muss bereits existieren, und der Benutzer muss Schreibrechte dafür besitzen. Syntax in dem Falle: {{{#!vorlage Befehl pdf2djvu {-i | --indirect} INDEX [OPTIONEN...] EINGABE.pdf }}} `INDEX` steht für die Indexdatei, die im Ordner mit dem gleichen Namen angelegt wird; existiert der Ordner nicht, werden alle Dateien im derzeitigen Ordner erstellt. Über die Datei '''index.djvu''' wird die indirekte Datei dann aufgerufen. Zusätzlich entsteht die Datei '''shared_anno.iff''', in der sich die "bitmap" mit allen verwendeten Zeichen befindet, auf die z.B. für die Suche zurückgegriffen wird. == Optionen == Einige der mögliche Optionen: ||<-2 rowclass="titel"> Optionen für pdf2djvu || || Argument || Funktion || ||<-2 rowclass="trennzeile"> ''Extraktions-Optionen'' || || `--no-metadata` || vorhandenen Metadaten werden nicht übernommen || || `--verbatim-metadata` || Metadaten werden komplett übernommen || || `--no-outline` || keine Übernahme des Inhaltsverzeichnisses|| || `--no-hyperlinks` || keine Übernahme vorhandener Hyperlinks|| || `--no-text` || keine Übernahme der Textebene || || `--words` || Text wird extrahiert, die Position jedes Wortes wird festgehalten (Standard)|| || `--lines` ||Text wird extrahiert, die Position jeder Zeile (statt der Wörter) wird festgehalten|| || `-p SEITENZAHL(EN)`, `--pages SEITENZAHL(EN)` || Seiten/Bereiche, ggf. durch Kommata getrennt (z.B. 1-7, 9, 13-15) (Standard: Alle Seiten)|| ||<-2 rowclass="trennzeile"> ''Bildqualität'' || || `--monochrome` || die Seiten werden als monochrome Bilder ausgegeben || || `--anti-alias` || ermöglicht [wikipedia:Antialiasing_(Computergrafik):Antialiasing] der Schrift und [wikipedia:Vektorgrafik:Vektorgrafiken]; nicht empfohlen! || || `-d`, `--dpi=AUFLÖSUNG` || erwünschte Auflösung in dpi, (mögliche Werte: zwischen 72 und 6000, Standard 300) || || `--guess-dpi` || die Ursprungsauflösung aus eingebetteten Bilddaten errechnen; mit Vorsicht zu verwenden! || ||<-2 rowclass="trennzeile"> ''Sonstiges''|| || `-j`, `--jobs=n` || Anzahl der parallel ausgeführten Prozesse, Standard ist 1 || || `-j=`, `--jobs=0` || automatische Anpassung der Anzahl der parallel ausgeführten Prozesse || || `-q`, `--quite` || unterdrückt alle Ausgaben im Terminal || || `-v`, `--verbose` || Ausgabe aller Details, z.B. zum Debugging || || `-h`, `--help` || Hilfe, listet die möglichen Optionen auf || || --`version` || gibt die Versionsnr. des Programms aus || pdf2djvu liefert eine Vielzahl weiterer, z.T. sehr spezieller Optionen. Eine vollständige Übersicht liefert die [:man:Manpage] des Programms. = Grafische Benutzeroberfläche = {{{#!vorlage Hinweis Dieser Teil ist nicht für aktuelle Ubuntuversionen getestet! Unter 64-Bit-Systemen startet die GUI nicht, sie ist für 32-bit-Systeme ausgelegt. Im Terminal erscheint ggf. ein Hinweis in der Art {{{ PdfToDjVuGUI: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory \}}} obwohl diese Datei standardmäßig mit dem Paket '''libX11-6''' installiert ist. }}} Das Programm [https://www.trustfm.net/GeneralTools/SoftwarePdfToDjvuGUI.php "Pdf to Djvu GUI"] {en} liefert eine einfache [:GTK:]-Benutzeroberfläche für pdf2djvu, mit dem die Auswahl der zu konvertierenden Dateien, sowie einige der Optionen in einem Benutzerfenster ausgewählt werden können. Das Programm ist [wikipedia:Freeware:], die Linux-Version kann als [http://www.trustfm.net/software/utilities/PdfToDjvuGUI.php?page=Download '''.zip'''-Archiv] {dl} heruntergeladen werden. [[Vorlage(Fremd, Software)]] Das Archiv entpacken[2], es enthält die Programmdatei '''Pdf To Djvu GUI''', die direkt gestartet werden kann[5], bei Bedarf kann auch ein Eintrag im Startmenü erstellt werden[6]. [[Bild(./PdfToDjvuGui.png, 300, right)]] == Bedienung == Die Bedienung ist recht einfach. Über ''"Add PDF(s)"'' werden die gewünschten PDF-Dateien ausgewählt, die im Fenster ''"Pdf Input List"'' mit Pfadangabe aufgeführt werden. ''"Remove Selected"'' entfernt die markierte, ''"Remove All"'' alle Dateien. Daneben lassen sich per Checkbox die Optionen `--anti-alias`, `--no-metadata`, `--no-outline`, `--no-hyperlinks` und `--no-text` auswählen, die Auflösung (`--dpi`) einstellen, und die zu bearbeitenden Seiten festlegen, allerdings werden die Werte für alle gewählten Dateien gleichermaßen verwendet. ''"Hide Output"'' sollte der Option `-p/--quiet` entsprechen. ''"Default Settings"'' stellt den Standard ohne Optionen wieder her. ''"Generate DJVU"'' startet den Konvertierungsprozess, die Dateien werden als '''.djvu''' im selben Verzeichnis wie die '''.pdf'''-Dateien abgelegt. Nach Abschluss der Konvertierung erscheint ein Fenster mit einer Erfolgsmeldung. Die unter ''"About -> Check Version"'' angepriesene Version ist nur für Windows vorgesehen. = Batch-Konvertierung auf der Kommandozeile = Um zügig alle PDF-Dateien eines Ordners zu konvertieren, kann z.B. der Einzeiler {{{#!vorlage Befehl for i in *.pdf; do pdf2djvu -o "${i%%.pdf}.djvu" "$i"; done }}} ausgeführt im jeweiligen Verzeichnis, verwendet werden (siehe [topic:for-schleife-mit-batch-konvertierung:Forum]). = Alternativen = [:DjVuDigital:], ein vergleichbares Programm des [http://djvu.sourceforge.net/ DjVuLibre-Projektes] {en}. Allerdings muss dazu zunächst ein spezieller [https://www.ghostscript.com/ Ghostscript-Treiber] {en} erstellt werden, aufgrund unklarer Lizenzbedingungen existiert kein "fertiges" Programm. Das Programm kann neben '''.pdf'''-Dateien auch die Formate PostScript('''.ps'''), GZipped PostScript ('''.ps.gz''') und Encapsulated PostScript ('''.eps''') konvertieren; Metadaten lassen sich allerdings für PDF-Dateien nicht mit übertragen. Mit [:gscan2pdf:] kann man PDF-Dateien importieren, und dann als PDF wieder ausgeben lassen; Textebenen müssten allerdings neu erstellt werden. Den umgekehrten Prozess kann man mit [:djvu2pdf:] bewerkstelligen, Textlagen können erhalten werden. = Links = * [https://jwilk.net/software/pdf2djvu Projektseite] {en} * [http://djvu.sourceforge.net/gsdjvu.html DjVuDigital] {en} * [:DjVu:]-Hauptseite #tag: Grafik, Bildung, Büro, Kommunikation, PDF, djvu