Как настроить пользовательский размер страницы с помощью 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
команда, похоже, принимает только предопределенные имена шаблонов, как в связанной документации.
Ответы
Ответ 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 работает.