Guten Abend, zusammen,
ich benutze das KDE 5 Service Menu PDF und bin sehr zufrieden damit. Im Laufe der Zeit habe ich dieses Service Menu immer weiter meinen Bedürfnissen angepasst.
Da ich oft PDFs in PNG oder JPG umwandeln muss, würde ich nun gern folgendes erreichen:
Wenn ich ein PDF mit mehreren Seiten habe, dann sollte der Name der konvertierten Dateien, wie ursprünglich vorgesehen, am Ende eine Nummer enthalten:
-sOutputFile="${file_name%.*}_%0d.jpg"
bzw.
-sOutputFile="${file_name%.*}_%0d.png"
Wenn ich jetzt aber ein PDF mit nur einer Seite habe, dann möchte ich als Ausgabe gern einen Dateinamen ohne Nummer am Ende haben.
Benigno, der das Service Menu programmiert hat, gab mir den Tipp, dass ich vor dem Speichern der Datei mit pdfinfo einen Check einfügen sollte, der die Anzahl der Seiten überprüft - und wenn die Datei aus nur einer Seite besteht, dann soll die Datei unter einem Namen ohne Nummer gespeichert werden.
Man müsste folgenden Code - Snippet verwenden und anpassen. Allerdings verstehe ich leider nicht genau, wie ich dieses Snippet anpassen und wo ich diesen Check mit pdfinfo dann einbinden soll.
1 2 3 4 5 6 | pages=$(pdfinfo file.pdf | grep Pages | sed "s/.*:\s*//") if [ $pages -eq 1 ]; then echo "Only one page" else echo "Many pages" fi |
Momentan sieht mein Code fürs Konvertieren von PDF zu PNG so aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | png () { encoding=$1 shift [ -z "${dpi}" ] && dpi='300x300' while [ $# -ne 0 ]; do work_dir="${1%/*}"; [ ! -d "${work_dir}" ] && work_dir="$(pwd)" file_name="${1##*/}" base_file_name="${file_name%.*}" ## Reload language strings with current variables load_language eval output_dir=\$"msg_png_dest_dir_${encoding}" if [ -d "${output_dir}" ]; then output_dir=$(kdialog --title "${msg_png_select_output_dir_title}" --getexistingdirectory "${work_dir}") || exit 0 fi [ ! -f "${work_dir}/${file_name}" ] && shift && "${kdialog_bin}" --title "${msg_finish_title}" --passivepopup "${msg_file_not_found}" 5 && continue "${gs_bin}" -dSAFER -dBATCH -dNOPAUSE -q -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sDEVICE="${encoding}" -r"${dpi}" -sOutputFile="${file_name%.*}_%0d.png" "${1}" && \ "${kdialog_bin}" || \ "${kdialog_bin}" --title "${msg_png_finish_title}" --passivepopup "${msg_png_finish_error}" 5 shift done } |
Hat jemand eine Idee, wie ich diesen Code umprogrammieren muss, um die Abfrage der Seitenzahl einzubinden sowie den neuen Dateinamen davon abhängig zu machen?
Vielen Dank im Voraus für Eure Rückmeldung!
Ein etwas verzweifelter Chipy
Moderiert von ChickenLipsRfun2eat:
Thema in einen passenderen Forenbereich verschoben.
Bearbeitet von rklm:
Syntaxhighlighting