Повинуйтесь MediaBox/CropBox в PDF при использовании Ghostscript для рендеринга PDF к PNG

Я использовал Ghostscript для преобразования моих единственных графиков числа, представленных в PDF к PNG:

gswin32c -sDEVICE=png16m -r300x300 -sOutputFile=junk.png ^
         -dBATCH -dNOPAUSE Figure_001-a.pdf

Это работает в смысле, я вывожу PNG, и он содержит график.

Но это содержит огромное количество пробела также (исходное изображение в качестве примера: http://cdsweb.cern.ch/record/1258681/files/Figure_001-a.pdf).

При просмотре его в Acrobat, Вы отметите, что нет никакого пробела вокруг графика. При использовании вышеупомянутой командной строки, Вы найдете, что график только о 1/3 пространства.

При выполнении того же самого с файлом EPS я сталкиваюсь с той же проблемой. Однако существует параметр командной строки -dEPSCrop тот может передать, чтобы заставить механизм визуализации PS обращать внимание на BoundingBox.

Мне нужен подобный аргумент в пользу рендеринга PDFs. Я не смог найти его в документах (ни даже -dEPSCrop, на самом деле).

10
задан Kurt Pfeifle 16 April 2015 в 11:08
поделиться

2 ответа

Пробовали ли вы использовать pdfcrop , используя pdftex (например, поставляется с texlive) или (еще не пробовал) скрипт python pdfcrop ?

У меня есть аналогичный рабочий процесс с использованием первого упомянутого инструмента.

0
ответ дан 3 December 2019 в 23:12
поделиться

Существуют различные опции для управления тем, какой "размер носителя" Ghostscript отображает для данного ввода:

-dPDFFitPage
-dUseTrimBox
-dUseCropBox

При использовании PDFFitPage Ghostscript будет рендерить под текущий размер устройства страницы (обычно размер страницы по умолчанию). При UseTrimBox он будет использовать TrimBox (и в то же время установит PageSize в это значение). При UseCropBox будет использоваться CropBox (и одновременно будет установлен PageSize на это значение). По умолчанию (без параметра) Ghostscript будет рендерить с помощью MediaBox.

Для вашего примера, похоже, что добавление "-dUseCropBox" сделает работу, которую вы ожидаете.

Обратите внимание, вы можете дополнительно контролировать общий размер вывода, используя "-sPAPERSIZE" (выберите одно из всех предопределенных значений, известных Ghostscript) или (для большей гибкости) используйте "-dDEVICEWIDTHPOINTS=NNN -dDEVICEHEIGHTPOINTS=NN".

6
ответ дан 3 December 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: