====== 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