#!/bin/bash
# Liste der benötigten Programme
REQUIRED_CMDS=("yad" "zenity" "cut" "exiftool")
check_dependencies() {
local missing=()
echo "Überprüfe Systemvoraussetzungen..."
for cmd in "${REQUIRED_CMDS[@]}"; do
if command -v "$cmd" &> /dev/null; then
# Erfolg: Grüner Haken und Pfad anzeigen
echo -e " \e[32m[✔]\e[0m $cmd gefunden"
else
# Fehler: Rotes Kreuz
echo -e " \e[31m[✘]\e[0m $cmd FEHLT"
missing+=("$cmd")
fi
done
if [ ${#missing[@]} -ne 0 ]; then
echo -e "\n\e[31mFEHLER:\e[0m Bitte installiere die fehlenden Programme."
echo "Drücke Enter zum Beenden..."
read
exit 1
else
echo -e "\n\e[32mERFOLG:\e[0m Alle externen Hilfsprogramme sind bereit."
fi
}
check_dependencies
echo "Alle Abhängigkeiten gefunden."
echo "Drücke Enter, um dieses Fenster zu schließen..."
read
[Desktop Entry]
Name=PDF Metadaten bearbeiten
Exec=/home/xxx/scripte/pdf_meta_edit.sh %f
Type=Application
Terminal=false
MimeType=application/pdf;
Name[de_DE]=pdf-meta-editor.desktop
#!/bin/bash
shopt -s nocasematch
FILE="$1"
if [ -z "$FILE" ]; then
# Hier kannst du zenity lassen oder durch yad --error ersetzen
zenity --error --text="Keine Datei übergeben!"
exit 1
fi
if [[ "$FILE" != *.pdf ]]; then
zenity --error --text="Bitte eine PDF-Datei auswählen!"
exit 1
fi
# Aktuelle Metadaten holen
TITLE=$(exiftool -s3 -PDF:Title "$FILE")
AUTHOR=$(exiftool -s3 -PDF:Author "$FILE")
SUBJECT=$(exiftool -s3 -PDF:Subject "$FILE")
# Die eigentliche Änderung für YAD:
FORM=$(yad --form \
--width=500 \
--title="PDF Metadaten bearbeiten" \
--text="Bearbeite:\n$FILE" \
--field="Titel" "$TITLE" \
--field="Autor" "$AUTHOR" \
--field="Beschreibung" "$SUBJECT" \
--separator="|" )
# Abbruch abfangen (YAD gibt bei "Abbrechen" Code 1 zurück)
[ $? -ne 0 ] && exit 0
# Werte extrahieren (bleibt gleich)
NEW_TITLE=$(echo "$FORM" | cut -d'|' -f1)
NEW_AUTHOR=$(echo "$FORM" | cut -d'|' -f2)
NEW_SUBJECT=$(echo "$FORM" | cut -d'|' -f3)
exiftool \
-PDF:Title="$NEW_TITLE" \
-PDF:Author="$NEW_AUTHOR" \
-PDF:Subject="$NEW_SUBJECT" \
-XMP:Title="$NEW_TITLE" \
-XMP:Creator="$NEW_AUTHOR" \
-XMP:Description="$NEW_SUBJECT" \
-overwrite_original \
"$FILE"
yad --info --text="Metadaten gespeichert!"
Keine Kommentare:
Kommentar veröffentlichen