trollsportverein schrieb:
Edit: habe es nun im Projekte Forenbereich veröffentlicht. https://forum.ubuntuusers.de/topic/kde-servicemenue-bild-umwandeln-zu-pdf
Super 👍
chip88 schrieb:
Also eigentlich besteht keine akute Notwendigkeit, es weiter auszubauen, es sei denn, Du hast Lust, Dich mit mir daran auszutoben & auszuprobieren.
Ich habe das mal ein wenig ausgearbeitet. Das Ergebnis ist, dass du nun mehrere Dateien auf einmal PDF'en kannst. Das Ganze von der Kommandozeile aus, oder per Dolpin, wenn du den Parameter %F übergibst (war glaube ich die Dateiliste).
Verbessern kann man da trotzdem noch einiges. Bspw. gar nicht erst die Dateiendung prüfen, die kann bei einem Bild ja auch nicht vorhanden sein oder „IMG-2012-12-12.ich.neulich.besoffen“ heissen. Dafür gäbe es das Kommando file
oder mimetype
und man könnte den Mime-Typ auswerten, um sich nicht von sowas inkonsistentem wie Dateinamen abhängig zu machen (ich pflege die gar nicht).
Zusätzlich wäre auch ein Schalter schön, der einem erlaubt alles in eine PDF zu packen oder einzelne PDF pro Datei zu generieren.
Des Weiteren könnte man auch convert
noch Optionen übergeben, etc. pp. Möglichkeiten wie Sand am Meer.
Aber hier erstmal die Ausarbeitung mit Erklärungen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | #!/usr/bin/bash
if [ $# -eq 0 ]; then exit 1; fi # keine Argumente → raus
# Hier die gewünschten Dateiendungen eintragen, mit Leerzeichen getrennt.
suffix="bmp png jpg webp"
# Beispielausgabe der Bash-Expansionen:
# Kann zum rumspielen missbraucht werden ;)
printf '———\nExpansionen für %s:\n ${1##*.}:%s\n ${1#*.} :%s\n ${1%%.*} :%s\n ${1%%%%.*}:%s\n' "$1" "${1##*.}" "${1#*.}" "${1%.*}" "${1%%.*}"
# die eigentliche Arbeit beginnt hier
for i in "$@"; do # für jedes Argument (also die Dateiliste)
endung="${i##*.}" # ermittle die Endung, wenn keine vorhanden → leerer String
# Was keine Datei ist, wird nicht bearbeitet. (Daher kann man oben gut mit Text spielen)
if ! [ -f "$i" ]; then echo "$i ist keine Datei. Überspringe…"; continue; fi
if [[ "$suffix" =~ $endung ]]; then # Wenn die Endung in $suffix vorkommt
# echo entfernen zum „scharfschalten“
echo convert "$i" "${i%.*}".pdf # Befehlszeile zum konverieren.
else
echo "File \"$i\" mit der Endung $endung ist nicht in $suffix enthalten."
fi
done
|