Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
pdf [2026/09/30 17:51] – geraldpdf [2026/10/30 13:28] (aktuell) – gerald
Zeile 8: Zeile 8:
  
  
-----+====== 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.  
 + 
 +<code> 
 +#!/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'" 
 +</code> 
 + 
 + 
 +Verwendung: 
 + 
 +<code> 
 +chmod +x zip2pdf 
 +./zip2pdf dokumente.zip            # -> dokumente.pdf 
 +./zip2pdf dokumente.zip alles.pdf  # -> alles.pdf 
 +</code> 
 + 
 + 
 +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 == == Openoffice in PDF umwandeln ==
 
Nach oben
pdf.1790790699.txt.gz · Zuletzt geändert: von gerald
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0
DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp   Dogecoin Donations Accepted Here    DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp  DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp