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