Я колотил голову против этого напрасно.
Я должен уменьшить некоторый большой PDFs для печати на 8.5x11 дюймах (стандартная буква) страницы. ImageMagick/Ghostscript может обработать этот вид вещи, или я испытываю такие затруднения, потому что я использую неправильный инструмент для задания?
Просто полагаясь на 'уменьшение к странице' опция в клиентских диалоговых окнах печати не является опцией, поскольку мы хотели бы за это быть простыми в использовании для конечных пользователей.
Проблема с использованием ImageMagick состоит в том, что Вы преобразовываете в формат растрового изображения, увеличивая размер файла и уменьшая качество для любых векторных элементов на Ваших страницах.
Многовалентный сохранит векторную информацию PDF. Попробуйте:
java -cp Multivalent.jar tool.pdf.Impose -dim 1x1 -paper "8.5x11in" myFile.pdf
для создания выходного файла myFile-up.pdf
Команды mogrify/convert ImageMagick действительно сделают задание. У Stephen Page была примерно верная мысль, но действительно необходимо установить точки на дюйм файла также, или Вы не сделаете задания.
Принятие у Вас есть файл, это составляет 300 точек на дюйм и уже то же соотношение сторон как 8.5 x 11, команда была бы:
// 300dpi x 8.5 -2550, 300dpi x 11 -3300
convert original.pdf -density "300" -resize "2550x3300" resized.pdf
, Если соотношение сторон отличается, то необходимо сделать некоторую немного более хитрую обрезку.
Я бы не использовал convert
. Он использует Ghostscript в фоновом режиме, но работает намного медленнее. Я бы использовал Ghostscript напрямую, так как он дает мне гораздо более прямой контроль (а также некоторый контроль над настройками, чего гораздо труднее достичь с помощью convert
). А для преобразования для преобразования PDF в PDF у вас все равно будет установлен Ghostscript:
gs \
-o /path/to/resized.pdf \
-sDEVICE=pdfwrite \
-dPDFFitPage \
-r300x300 \
-g2550x3300 \
/path/to/original.pdf