Я обрезаю и растеризую некоторые PDF-файлы, используя ImageMagick. Чтобы удалить какой-то текст, который мне не нужен, я хочу обрезать его до меньшего размера, чем необходимо, а затем перенастроить размер страницы, добавив пробел.
Чтобы растеризовать и обрезать, я действую следующим образом:
for filename in *.eps; do
convert -density 150 -crop "$bbwpx"x"$bbhpx"+"$xoffpx"+"$yoffpx" \
+repage "$filename" "${filename%.*}.png"
convert "${filename%.*}.png" "${filename%.*}.pdf"
done
После этого ответа я хочу увеличить высоту страницы. Поэтому я добавил еще одну строку в код, показанный выше, чтобы получить:
for filename in *.eps; do
convert -density 150 -crop "$bbwpx"x"$bbhpx"+"$xoffpx"+"$yoffpx" \
+repage "$filename" "${filename%.*}.png"
convert "${filename%.*}.png" "${filename%.*}.pdf"
gs -q -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -sOutputFile="${filename%.*}-crop.pdf"\
-dDEVICEWIDTHPOINTS="$bbw" -dDEVICEHEIGHTPOINTS="$bbhnew" -dFIXEDMEDIA -c \
"<< /CurrPageNum 1 def /Install {0 $bbcorr translate} bind >> \
setpagedevice" -f "${filename%.*}.pdf"
done
Тем не менее, после выполнения этого высота всегда остается такой же, как прежде (как показано в pdfinfo
), однако содержимое pdf корректно переведено.
Однако выполнение кода на не растеризованных PDF-файлах работает.