[[Vorlage(Getestet, focal, bionic, jammy)]] {{{#!vorlage Wissen [:Java/Installation: Java installieren] [:Pakete installieren: Installation von Programmen] [:Packprogramme: Archive entpacken] [:Terminal: Ein Terminal öffnen] [:sudo:Root-Rechte erlangen] [:Editor: Einen Editor öffnen] [:Rechte: Rechte für Dateien und Ordner ändern] [:Programmstarter: Einen Programmstarter erstellen] }}} [[Inhaltsverzeichnis()]] [[Bild(./pdfsam_logo.png, 48, align=left)]] [http://www.pdfsam.org/ PDF Split and Merge] {en} (oder PDFSam) ist ein in [:Java:] programmiertes plattformunabhängiges Programm und in zwei Varianten verfügbar. Die kostenlose Variante kann zum einen mehrere PDF-Dateien zu einer einzigen PDF-Datei zusammenfügen (mergen) und zum anderen eine PDF-Datei in mehrere einzelne aufteilen (splitten). PDFSam ist in der Lage, PDF-Dateien zu sortieren (Plugin Visual Reorder) bzw. aus mehreren Dokumenten Seiten zu einer einzigen Datei zusammenzufügen und dabei die gewünschte Seitensortierung zu wählen (Plugin Visual composer). Beim Zusammenfügen werden die Lesezeichen der einzelnen PDF-Dateien übernommen. Die kostenpflichtige Variante ist [http://www.pdfsam.org/?page_id=57 PDF Sam enhanced] {en}. Die Unterschiede der beiden Varianten findet man auf [http://www.pdfsam.org/?page_id=42 dieser Seite] {en}. Alternativ kann "PDF Sam enhanced" selbst aus dem Quelltext kompiliert werden. Dazu ist ein "Java Development Kit" ([:Java#JDK-SDK:JDK]) notwendig. PDFSam ist unter den Bedingungen der GPL veröffentlicht, ist also samt Quelltext frei und kostenlos verfügbar. Auf der Webseite des Autors sind Programmversionen für Linux, Windows und Mac OS X erhältlich. = Voraussetzungen = Das Programm basiert auf Java. Wie man eine Laufzeitumgebung ([:Java#JRE:JRE]) installiert, ist im Artikel [:Java/Installation/OpenJDK:] beschrieben. = Installation = Die Programmversion 4.0.1 (Ubuntu [:18.04:]) bzw. 4.0.4 (Ubuntu [:20.04:]) ist in den offiziellen Paketquellen enthalten und wird mit dem folgenden Paket installiert [2]: {{{#!vorlage Paketinstallation pdfsam, universe }}} Nach der Installation ist bei Ubuntu-Varianten mit einem Anwendungsmenü ein Eintrag unter ''"Büro -> pdfsam"'' zu finden, unter KDE 4 liegt der Eintrag im K-Menü unter ''"Büroprogramme -> pdfsam"''. == Manuell == Wer eine neuere Version (4.2.4) einsetzen möchte, kann sich ein fertiges Installationspaket vom Autor herunterladen [http://www.pdfsam.org/download-pdfsam-basic/] und dieses mit [https://wiki.ubuntuusers.de/Paketinstallation_DEB/#gdebi gdebi] installieren. Nun kann PDFSam einfach mit dem Befehl: {{{#!vorlage Befehl pdfsam }}} gestartet werden. == Enhanced Edition == Die Enhanced Edition ist nicht als fertiges Paket verfügbar. Um die erweiterten Funktionen der Enhanced Edition zu nutzen, ist es nötig, das Programm aus dem Quelltext selbst zu kompilieren. Dieser kann über die [http://www.pdfsam.org/?page_id=32 Downloadseite] {en} {dl} oder alternativ bei [http://sourceforge.net/projects/pdfsam/files/pdfsam-enhanced/2.2.2e/ SourceForge] {dl} heruntergeladen werden. Außerdem müssen noch die folgenden Pakete für eine erfolgreiche Kompilierung installiert sein: {{{#!vorlage Paketinstallation openjdk-6-jdk, universe, das [:Java/Installation#OpenJDK:Java Development Kit] (JDK) für Entwickler openjdk-6-source, universe, Java Quellcode openjdk-6-jre-lib, universe, plattformunabhängige Java-Bibliotheken ant, universe, plattformunabhängiges Build-Tool }}} {{{#!vorlage Experten Es ist gut möglich, dass man statt OpenJDK 6 auch OpenJDK 7 oder die JDKs von Oracle Java nutzen kann. Aber bitte nicht OpenJDK 7 mit einer Java-Laufzeitumgebung (JRE) verwechseln. Es wird zwingend die Entwicklerversion (JDK) benötigt. }}} Nach der Installation dieser Pakete kann das Programm kompiliert werden. Zuerst wird die Datei '''pdfsam--out-src.zip''' in ein beliebiges Verzeichnis entpackt [4], z.B. den persönlichen Ordner. Nun wechselt man in dieses Verzeichnis. Dort befinden sich nun verschiedene '''.zip'''-Dateien, welche alle in dieses Verzeichnis entpackt [4] werden müssen. [[Vorlage(Fremd, Software)]] Die Datei '''~/pdfsam--out-src/pdfsam-maine/ant/build.properties''' wird mit einem Editor geöffnet [3], um die Pfade anzupassen. Hier ein Beispiel: {{{ #deploy target destination dir (if you want to deploy) pdfsam.deploy.dir=../build/pdfsam-basic #root dir where every src directory is located workspace.dir=../ #where classes will be compiled, jars distributed, javadocs created and release created build.dir=../build #version to build pdfsam.version=enhanced #libraries itext.jar.name=iText-2.0.7 log4j.jar.name=log4j-1.2.15 dom4j.jar.name=dom4j-1.6.1 jaxen.jar.name=jaxen-1.1 bcmail.jar.name=bcmail-jdk14-138 bcprov.jar.name=bcprov-jdk14-138 looks.jar.name=looks-2.1.4 jcmdline.jar.name=pdfsam-jcmdline-1.0.3 emp4j.jar.name=emp4j-1.0.0 pdfsam-console.jar.name=pdfsam-console-1.1.4e pdfsam-split.jar.name=pdfsam-split-0.4.5 pdfsam-merge.jar.name=pdfsam-merge-0.6.4 pdfsam-cover.jar.name=pdfsam-cover-0.2.4e pdfsam-encrypt.jar.name=pdfsam-encrypt-0.2.4e pdfsam-mix.jar.name=pdfsam-mix-0.1.3e pdfsam-unpack.jar.name=pdfsam-unpack-0.0.3e pdfsam-langpack.jar.name=pdfsam-langpack }}} Nun kann das Programm kompiliert werden, und man sollte es ohne Probleme starten können. {{{#!vorlage Befehl #Kompilieren cd ~/pdfsam--out-src/pdfsam-maine/ant/ ant #In das Programmverzeichnis wechseln cd ~/pdfsam--out-src/build/pdfsam-maine/release/dist/pdfsam-enhanced #Ausführen java -jar pdfsam-.jar }}} Ab hier kann man die im Abschnitt [#Manuell Installation] beschriebenen Schritte durchführen, um den Programmstart zu erleichtern. = Konfiguration = Der Start erfolgt – wie bei Java-Programmen üblich – über den Befehl: {{{#!vorlage Befehl java -jar /PFAD/ZUR/pdfsam-VERSION.jar }}} == Deutsche Sprache == Beim ersten Aufruf startet PDFsam in englischer Sprache. Um die deutsche Sprache einzustellen, wählt man den Reiter ''"Settings"''. Dort wählt man die Sprache ''German'', speichert ab mit einem Klick auf "''Save''" und schließt das Programm. Beim nächsten Start von PDFsam sind die Menüs und Schaltflächen-Beschriftungen auf Deutsch. Die Konfigurationsdaten werden im Ordner '''~/.pdfsam/''' im [:Homeverzeichnis:] gespeichert. = Benutzung = == PDF-Dateien zusammenfügen == [[Vorlage(Bildunterschrift, ./PDFsam.png, 250, "PDFsam 2.2.0", right)]] Um mehrere PDF-Dateien zusammen zu fügen, muss man den Reiter ''"Zusammenführen"'' (Merge) aktivieren und die ''"Hinzufügen"''-Taste betätigen. Es erscheint ein Menü, in dem man die zu vereinenden PDF-Dateien auswählt. Diese erscheinen nun im Menü wieder. Nun den Ausgabepfad und die Ausgabedatei angeben, dies geschieht mit der ''"Durchsuchen"''-Taste. Mit der ''"Starten"''-Taste wird nun der Prozess gestartet. Unten im Statusfeld wird man über den Fortschritt der Aktion informiert. Hat alles geklappt, erscheint in der letzten Zeile die Meldung {{{ Total processed pages }}} gefolgt von der Seitenzahl des Ausgabedokuments. Fehlermeldungen färbt PDFsam rot ein, so dass man auf den ersten Blick sehen kann, ob etwas schiefgegangen ist. Das passiert beispielsweise, wenn man versehentlich eine Datei in einem anderen Format als PDF auswählt. == PDF-Dateien aufteilen == PDFSam kann auch ein einzelnes PDF-Dokument mit zwei oder mehr Seiten aufteilen und so z.B. aus einem fünfseitigem Dokument fünf einzelne PDF-Dateien erstellen. Auf den Reiter ''"Teilen"'' (Split) wechseln und das PDF auswählen, das geteilt werden soll. Dazu die Taste ''"Durchsuchen"'' wählen. Ist das geschehen, sieht man weiter unten im Menü die Optionen zur Aufteilung: * ''"in Einzelseiten zerlegen"'' (Burst) - erzeugt aus jeder Seite des Dokuments eine eigene Datei * ''"Zerteile nach je "n" Seiten"'' - mit dieser Option erhält man Dateien mit einer frei wählbaren Seitenzahl * ''"Zerteile nach geraden Seiten"'' - man erhält für jede Seite mit gerader Seitenzahl ein neues Dokument * ''"Zerteile nach ungeraden Seiten"'' - man erhält für jede Seite mit ungerader Seitenzahl ein neues Dokument. Unter der Option ''"Ausgabeordner"'' gibt man entweder das Originalverzeichnis der Quelldatei ein, oder man setzt einen Haken bei ''"Bitte Wählen"'' - So kann man einen anderen Ausgabeordner wählen. Die Bezeichnungen der Ausgabedateien beginnen mit einer Zahl, gefolgt von der unter ''"Präfix der Ausgabedateien"'' eingestellten Zeichenkette und dem Namen der Originaldatei. = Benutzung der Kommandozeilenversion = Mit Hilfe des Programms "pdfsam-console" lassen sich alle Aufgaben in der Kommandozeile bewerkstelligen. Eine manpage wird nicht angeboten. Die Hilfe lässt sich so aufrufen: {{{#!vorlage Befehl pdfsam-console -help }}} == PDF-Dateien splitten == Zerlegt die Datei "x.pdf" alle 6 Seiten: {{{#!vorlage Befehl pdfsam-console -f x.pdf -o . -s NSPLIT -n 6 split }}} == PDF-Dateien zusammenfügen == Zum Zusammenfügen der Dateien "1.pdf" und "2.pdf" zu "12.pdf" muss folgender Befehl verwendet werden: {{{#!vorlage Befehl pdfsam-console -f 1.pdf -f 2.pdf -o ./12.pdf concat }}} Zum Zusammenfügen der pdf-Dateien im Ordner "pdfs" in alphabetischer Reihenfolge zu "zusammen.pdf" ist folgender Befehl zu benutzen: {{{#!vorlage Befehl pdfsam-console -d ./pdfs -o ./zusammen.pdf concat }}} Optionen zum Zusammenfügen lassen sich auf der Hilfeseite nachlesen: {{{#!vorlage Befehl pdfsam-console -h concat }}} = Problembehebung = == Mit bestimmter Java-Version starten == Unabhängig von der [:Java/Tipps:systemweit eingerichteten] Java-Version ist es in bestimmten Situationen erforderlich, PDFSam explizit mit einer anderen Java-Version zu starten. Ein Beispiel für OpenJDK 8 und Ubuntu 16.04: * 32-Bit: {{{#!vorlage Befehl /usr/lib/jvm/java-8-openjdk-i386/jre/bin/java -jar /PFAD/ZU/pdfsam/pdfsam-VERSION.jar }}} * 64-Bit: {{{#!vorlage Befehl /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar /PFAD/ZU/pdfsam/pdfsam-VERSION.jar }}} == Version 4.x == Diese Version setzt zwingend Java 11 oder neuer und [wikipedia:JavaFX:] voraus. Während von Problemen in Kombination mit [:Java#OpenJDK:OpenJDK] berichtet wurde, war der Einsatz unter [:Java/Oracle_Java:Oracle Java] ohne Fehler möglich. == PDFSam startet nicht == Wenn PDFSam nur den Start-Dialog anzeigt, danach aber abbricht, kann man PDFSam über die Console starten, um die Fehlerursache zu ermitteln; dazu im Terminal den Befehl `pdfsam` ausführen. Wenn dann die folgende Meldung ausgegeben wird, hat man evtl. die falsche Java-Version installiert/verwendet. {{{#!vorlage Befehl ~$ pdfsam Graphics Device initialization failed for : es2, sw Error initializing QuantumRenderer: no suitable pipeline found java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280) at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:222) at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:260) at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267) at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158) at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658) at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94) at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124) ... 1 more Exception in thread "main" java.lang.RuntimeException: No toolkit found at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:272) at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267) at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158) at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658) at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195) at java.base/java.lang.Thread.run(Thread.java:834) }}} Der obige Fehler tritt z. B. auf Ubuntu 20.04 mit PDFSam 4.0.4 in Verbindung mit dem Oracle-JDK 11.0.12 auf. Mit OpenJDK 11.0.18 startet PDFSam hingegen ohne Fehler. === Ad-hoc-Behebung === Man kann PDFSam aus dem Terminal starten, indem man die richtige Java-Version angibt: {{{#!vorlage Befehl JAVACMD=/usr/lib/jvm/jdk-11.0.12/bin/java pdfsam }}} Der Pfad zu `java` muss ggf. an die Gegegebenheiten auf dem eigenen Rechner angepasst werden. === Dauerhafte Lösung === Als dauerhafte Lösung kann man die global verwendete Java-Version ändern. Dies kann über das Alternativen-System erledigt werden: {{{#!vorlage Befehl sudo update-alternatives --config java }}} = Links = * [http://www.pdfsam.org/ Projektseite] {en} * [https://pdfsam.org/de/faq/ FAQ] {de} - häufige Fragen und Antworten * [http://heise.de/-1705524 PDF-Werkstatt mit PDFsam] {de} - heise Open Source, 09/2012 * [http://www.easylinux.de/Artikel/ausgabe/2007/01/064-pdfsam/ PDF-Dateien splitten und zusammenfügen] - EasyLinux 01/2007 {de} * [http://jpdftweak.sourceforge.net/ jPdfTweak] {en} - weiteres Java-Programm zur Bearbeitung von PDF-Dateien * [:PDF:] {Übersicht} Programmübersicht # tag: Büro, Multimedia, PDF, Java