Подтвердить что ты не робот

Как настроить пользовательский размер страницы с помощью Ghostscript

Я просмотрел некоторые материалы с разрешением 600 dpi, ~ 9,36x12,67 дюйма и подготовлен в формате PostScript (PS).

Теперь, когда я пытаюсь преобразовать PS в PDF с Ghostscript (GS), я получаю сжатый вывод, так как я предполагаю, что размер страницы по умолчанию GS установлен на A4. Я нашел доступные шаблоны для GS здесь: http://www.ghostscript.com/doc/9.06/Use.htm#Known_paper_sizes, но ни один из них не соответствует размерам моих PS файлов, поэтому:

Могу ли я поручить GS вывести пользовательский размер, и если да, то как?

-sPAPERSIZE команда, похоже, принимает только предопределенные имена шаблонов, как в связанной документации.

4b9b3361

Ответ 1

Вы можете установить используемый размер страницы с помощью -gNNNNxMMMM, где NNMN - ширина в пикселях с разрешением 720 точек на дюйм (720 пикселей = 1 дюйм), а MMMM - высота в пикселях с разрешением 720 точек на дюйм.

Или вы можете установить нестандартный размер в точках PostScript (72 точки == 1 дюйм) с помощью -dDEVICEWIDTHPOINTS=w -dDEVICEHEIGHTPOINTS=h.

Если я не ошибаюсь, 9.36 дюйма & асимптота = 674 точки и 12.67 дюйма & асимптота = 912 пунктов.

Вам также необходимо применить -dPDFFitPage, чтобы соответствовать вашему вводу на страницу.

Итак, вы можете использовать

gs                          \
   -o output.pdf            \
   -sDEVICE=pdfwrite        \
   -dDEVICEWIDTHPOINTS=674  \
   -dDEVICEHEIGHTPOINTS=912 \
   -dPDFFitPage             \
    input.ps

или

gs                   \
   -o output.pdf     \
   -sDEVICE=pdfwrite \
   -r600             \
   -g8112x7596       \
   -dPDFFitPage      \
    input.ps

Ответ 2

Что сработало для меня:

gs -sDEVICE=pdfwrite -r720 -g4308x6066 -dPDFFitPage -o out.pdf in.pdf

4308x6066 - количество пикселей, -r720 - количество пикселей на дюйм.

Итак, здесь мы имеем 720dpi, поэтому, например, на 5 дюймов, это будет 3600 пикселей.

Ответ 3

Я обнаружил, что gs обрезает мой вывод, даже если я заставил страницу иметь самый большой стандартный размер, A0.

Причина оказалась в том, что документ PostScript, отправленный в gs на groff/grops, содержал спецификацию %%DocumentMedia, которая переопределяла выбор Ghostscript.

Решение заключалось в предоставлении groff флага командной строки -p-P48i,48i. -p сообщает groff передать оставшуюся часть опции grops. От -P48i,48i до grops задает размер бумаги 48 дюймов на 48 дюймов.

Ответ 4

Я использую GhostPDL 9.10. Хотя мой размер бумаги 8.5x13 указан в http://ghostscript.com/doc/7.07/Use.htm#Known_paper_sizes как "flsa", переключатель "-sPAPERSIZE = flsa" не имел эффекта, бумага размер остался. Правильные единицы для -g5100x7800, совпадающий с моим -r600 (не 720); -g работает.