Я использую этот сценарий (из здесь ), чтобы уменьшить размер файла pdf:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \ -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
Я добавил это в действие Dolphin (сервисное меню) со строкой:
Exec=bash -c 'pdf=$(gs -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile=ebook.pdf "%u"); kdialog --title "Shrink" --msgbox "Done! $pdf";';
Я хочу, чтобы имя выходного файла автоматически основывалось на имени входного файла, например: input_xxx
.
Если вы присвоите значение % u
переменной оболочки, должно быть возможно использование стандартного синтаксис расширения переменной $ {var% .ext} _xxx
, чтобы удалить расширение .pdf
и добавить суффикс по вашему выбору:
bash -c 'f="%u"; pdf=$(gs -dQUIET -dBATCH [pdf options] -sOutputFile="${f%.pdf}_xxx" "$f"); ...'