#!/bin/bash # Hinweise zur verwendung des Skripts: # - Vor dem ersten laufen lassen des Skripts sollte sichergestellt werden dass der Hauptordner Richtig gewählt ist, und dass dort nur die Datein Abgelegt werden welche umgewandelt werden sollen. # - Das Skript sollte dann automatosch inerhalb des Haupt Ordners einen Unterordner als Zielordner erstellen um dort die PDFs Abzulegen. # - Bei Ausführen des Skripts wird der Zielordner immer vor beginn der Umwandlungen gereinigt, sodass keine Dateikonflikte enstehen. # - Die Originaldatein werden nachdem diese in PDFs umgewandelt wurden GELÖSCHT, es sollten also keine einzeloriginale umgewandelt werden sondern nur Kopien # - Es können weitere Dateitypen zur umwandlung in der jeweiligen find funktion wie bereits vorhandne hinzugefügt werden. # Pfad zum Hauptordner (Dokumente) HAUPT_ORDNER="$HOME/Dokumente" # Pfad zum Zielordner (PDF) ZIEL_ORDNER="$HAUPT_ORDNER/PDF" LOGLEVL=$1 # Festlegen der Farben für Ausgabe GREEN='\033[0;32m' RED='\033[0;31m' CYAN='\033[0;36m' NC='\033[0m' # Funktion zur ausgabe von Debug Meldungen function debug(){ if [ "$LOGLEVEL" = "debug" ]; then echo -e "${CYAN}[DEBUG] $1${NC}" fi } # Funktion zur Ausgabe von log Meldungen function log() { if [ "$LOGLEVEL" != "error" ]; then echo -e "${GREEN}[INFO] $1${NC}" fi } # Funktion zur Ausgabe von error Meldungen function error() { echo -e "${RED}[ERROR] $1${NC}" } # Zielordner erstellen, falls er nicht existiert rm -frd "$ZIEL_ORDNER" mkdir -p "$ZIEL_ORDNER" mkdir -p "$ZIEL_ORDNER/Anhang" # Alle .doc-Dateien im Hauptordner und Unterordner finden find "$HAUPT_ORDNER" -type f \( -name "*.DOC" -o -name "*.doc" -o -name "*.docx" -o -name "*.DOCX" \) | while read -r DOC_FILE; do # Relativen Pfad zur Datei finden RELATIVER_PFAD="${DOC_FILE#$HAUPT_ORDNER/}" # Zielverzeichnis für die PDF-Datei bestimmen ZIEL_VERZEICHNIS="$ZIEL_ORDNER/$(dirname "$RELATIVER_PFAD")" # Zielverzeichnis erstellen, falls es nicht existiert mkdir -p "$ZIEL_VERZEICHNIS" debug "Konvertiere $DOC_FILE..." # Datei in das Zielverzeichnis als PDF konvertieren if lowriter --headless --convert-to pdf --outdir "$ZIEL_VERZEICHNIS" "$DOC_FILE"; then debug -e "Loesche Originaldatei $DOC_FILE..." rm "$DOC_FILE" else error "Fehler: Konvertierung fehlgeschlagen fuer $DOC_FILE." fi done log -e "================>DOC umwandlung Abgeslossen<===================" # Alle .ppt-Datein im Hauptordner und Unterordnern finden find "$HAUPT_ORDNER" -type f \( -name "*.ppt" -o -name "*.pptm" -o -name "*.pptx" -o -name "*.PPT" -o -name "*.PPTX" \) | while read -r PRES_FILE; do # Relativen Pfad zur Datei finden RELATIVER_PFAD="${PRES_FILE#$HAUPT_ORDNER/}" # Zielverzeichnis für die PDF-Datei bestimmen ZIEL_VERZEICHNIS="$ZIEL_ORDNER/Anhang/$(dirname "$RELATIVER_PFAD")" # Ausgabe debug "Konvertiere $PRES_FILE..." # Datei in das Zielverzeichnis als PDF konvertieren if libreoffice --headless --convert-to pdf --outdir "$ZIEL_VERZEICHNIS/Anhang" "$PRES_FILE"; then debug "Loesche Originaldatei $PRES_FILE..." rm "$PRES_FILE" else error "Fehler: Konvertierung fehlgeschlagen fuer $PRES_FILE." fi done log -e "${GREEN}================>PPT umwandlung Abgeslossen<===================${NC}" find "$HAUPT_ORDNER" -type f \( -name "*.XLS" -o -name "*.xls" -o -name "*.XLSX" -o -name "*.xlsx" \) | while read -r TAB_FILE; do # Relativen Pfad zur Datei finden RELATIVER_PFAD="${TAB_FILE#$HAUPT_ORDNER/}" # Zielverzeichnis f�r die PDF-Datei bestimmen ZIEL_VERZEICHNIS="$ZIEL_ORDNER/Anhang/$(dirname "$RELATIVER_PFAD")" echo -e "${NC}Konvertiere $TAB_FILE...${NC}" # Datei in das Zielverzeichnis als PDF konvertieren if libreoffice --headless --convert-to pdf --outdir "$ZIEL_VERZEICHNIS/Anhang" "$TAB_FILE"; then echo -e "${GREEN}Loesche Originaldatei $TAB_FILE...${NC}" rm "$TAB_FILE" else echo -e "${RED}Fehler: Konvertierung fehlgeschlagen fuer $TAB_FILE.${NC}" fi done echo -e "${GREEN}============================${NC}" echo -e "${GREEN}Konvertierung Abgeschlossen.${NC}" echo -e "${GREEN}============================${NC}"