staging.inyokaproject.org

PDF Service Menu anpassen / umprogrammieren?

Status: Ungelöst | Ubuntu-Version: Kubuntu 18.04 (Bionic Beaver)
Antworten |

Chip88

Anmeldungsdatum:
16. Juni 2008

Beiträge: 560

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

Antworten |