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 <archiv.zip> [ausgabe.pdf]
#
# Voraussetzungen: unzip, pdfunite (poppler-utils)
set -euo pipefail
usage() {
echo "Aufruf: $(basename "$0") <archiv.zip> [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
Das geht natürlich über die Export-Funktion von OOo.
Interessant ist es als Commandline-Funktion ohne X.
http://www.somepdf.com/some-pdf-to-txt-converter.html
(Windows only)
Before installing Some PDF to TXT Converter, please be sure you have:
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:
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.
Installiere pdftk:
sudo apt install pdftk
Verwende pdftk:
pdftk *.pdf cat output output.pdf