====== PDF ====== Portable Data Format Postscript Level 3 [[freepdf|FreePDF]] ====== Alle PDFs in einem ZIP in eine einzige PDF umwandeln ====== Anwendungsfall: Wenn man via DHL online Päckchen- oder Paket-Aufkleber erstellt kann man alle auf einmal runterladen. Das ist jedoch nur eine ZIP-Datei mit allen einzelnen Zettel-PDFs. Man muss das ZIP entpacken und muss dann wieder alles PDFs einzeln drucken. Man kann sie alle in den Drucker drag&droppen, aber dann braucht man erst mal das Druckericon irgendwo. Hier die Lösung. Dieses Bash-Skript entpackt das ZIP und fügt alle PDFs darin in 1 PDF zusammen. Vola, nur noch 1X Drucken. #!/usr/bin/env bash # # zip2pdf - Fasst alle PDFs aus einer ZIP-Datei mit pdfunite zu einem PDF zusammen. # # Aufruf: ./zip2pdf [ausgabe.pdf] # # Voraussetzungen: unzip, pdfunite (poppler-utils) set -euo pipefail usage() { echo "Aufruf: $(basename "$0") [ausgabe.pdf]" >&2 exit 1 } # --- Argumente prüfen ------------------------------------------------------- [ $# -ge 1 ] && [ $# -le 2 ] || usage zip_file="$1" [ -f "$zip_file" ] || { echo "Fehler: '$zip_file' nicht gefunden." >&2; exit 1; } # Ausgabename: Standard = ZIP-Name ohne Endung + ".pdf" if [ $# -eq 2 ]; then out_pdf="$2" else out_pdf="${zip_file%.*}.pdf" fi # --- Werkzeuge prüfen ------------------------------------------------------- command -v unzip >/dev/null 2>&1 || { echo "Fehler: 'unzip' nicht installiert. sudo apt install unzip" >&2; exit 1; } command -v pdfunite >/dev/null 2>&1 || { echo "Fehler: 'pdfunite' nicht installiert. sudo apt install poppler-utils" >&2; exit 1; } # --- Temporäres Arbeitsverzeichnis ----------------------------------------- work_dir="$(mktemp -d)" trap 'rm -rf "$work_dir"' EXIT # --- ZIP entpacken ---------------------------------------------------------- echo "Entpacke '$zip_file' ..." unzip -q -o "$zip_file" -d "$work_dir" # --- PDFs sammeln (sortiert, rekursiv) ------------------------------------- mapfile -t pdfs < <(find "$work_dir" -type f -iname '*.pdf' | sort) if [ ${#pdfs[@]} -eq 0 ]; then echo "Fehler: Keine PDF-Dateien im Archiv gefunden." >&2 exit 1 fi if [ ${#pdfs[@]} -eq 1 ]; then echo "Nur eine PDF gefunden – kopiere direkt nach '$out_pdf'." cp -- "${pdfs[0]}" "$out_pdf" else echo "Fasse ${#pdfs[@]} PDF-Dateien zusammen ..." pdfunite "${pdfs[@]}" "$out_pdf" fi echo "Fertig: '$out_pdf'" Verwendung: chmod +x zip2pdf ./zip2pdf dokumente.zip # -> dokumente.pdf ./zip2pdf dokumente.zip alles.pdf # -> alles.pdf Hinweise * Reihenfolge: Die PDFs werden alphabetisch nach ihrem Pfad sortiert eingefügt. Wenn du eine bestimmte Reihenfolge brauchst, benenne die Dateien im ZIP entsprechend (z. B. 01_…, 02_…). * Sicherheit: Entpackt in ein temporäres Verzeichnis, das per trap auch bei Abbruch aufgeräumt wird. * Mehrere PDFs gleichen Namens in verschiedenen Unterordnern sind kein Problem, da find den ganzen Pfad liefert. * Nur eine PDF: Wird direkt kopiert (pdfunite braucht mindestens zwei Dateien). * Voraussetzungen installieren (Debian/Ubuntu): sudo apt install unzip poppler-utils ====== Allerlei ====== == Openoffice in PDF umwandeln == Das geht natürlich über die Export-Funktion von OOo. Interessant ist es als Commandline-Funktion ohne X. [[OOo to PDF]] == JPG in PDF umwandeln == [[jpg_to_pdf]] == PDF in TXT umwandeln == [[http://www.somepdf.com/some-pdf-to-txt-converter.html]] (Windows only) Before installing Some PDF to TXT Converter, please be sure you have: * Windows NT/2000/XP/2003/Vista * Internet Explorer v4.1 or later * 64 MB RAM or more * 5 MB free disk space * At least 800*600 screen solution == Viele PDFs in eine einzige umwandeln == Um mehrere einseitige PDFs in ein einziges mehrseitiges PDF unter Ubuntu/Debian zusammenzufügen, gibt es mehrere Möglichkeiten. Hier sind die gängigsten Methoden: == Methode 1: pdfunite (aus dem Paket poppler-utils) == Installiere zuerst das benötigte Paket: sudo apt update sudo apt install poppler-utils Verwende dann pdfunite: pdfunite *.pdf output.pdf Dies fügt alle PDF-Dateien im aktuellen Verzeichnis in der alphabetischen Reihenfolge zusammen. == Methode 2: pdftk (aus dem Paket pdftk) == Installiere pdftk: sudo apt install pdftk Verwende pdftk: pdftk *.pdf cat output output.pdf