По размеру страницы в ghostscript (возможно, с поврежденным вводом) - PullRequest
6 голосов
/ 15 ноября 2011

Я пытаюсь использовать ghostscript для преобразования файла .ps в серию файлов .png, в основном потому, что у меня нет приемлемого средства просмотра ps.

Это команда, которую я использовал:

gs -dBATCH -dEPSCrop -dEPSFitPage -sDEVICE=png16m -r300  -dNOPAUSE -sOutputFile=neptune_111115_ob1-2_13pca_boloplots_%d.png neptune_111115_ob1-2_13pca_boloplots.ps 

(файл .ps представляет собой многостраничный постскриптум).

Выводы частично не отображаются на странице.Я хотел бы, чтобы изображения помещались внутри страницы.

Я могу включить примеры файлов, но они довольно большие - есть ли какая-то конкретная часть файла .ps, которая будет полезна?

Я подозреваю, что файл .ps неправильно указывает ограничивающий прямоугольник, но взлом значений BB не дал никакого эффекта.Файл .ps написан IDL (язык интерактивных данных ittvis).Я также попробовал вышеупомянутую команду без команд -dEPS * без удачи.

1 Ответ

12 голосов
/ 16 ноября 2011

-dEPSCrop и -dEPSFitPage являются взаимоисключающими:

  • Один обрезает EPS до BoundingBox, указанного в комментариях.
  • Другой масштабирует EPS с %%BoundingBox, указанного во внутренних комментариях PS-файла, чтобы соответствовать текущему носителю.

Вы не можете использовать оба одновременно.

Файл в любом случае не может быть файлом EPS, поскольку в файле EPS не может быть нескольких страниц. Так что на самом деле ни один из переключателей не будет иметь никакого эффекта (как вы обнаружили).

Либо PostScript запрашивает размер носителя с помощью setpage или setpagedevice, либо он использует только то, что установлено на данный момент. Я думаю, что это просто с использованием текущих средств массовой информации. Попробуйте установить -sPAPERSIZE=a4 и -sPAPERSIZE=letter.

Если это работает, программа не запрашивает размер носителя. Если это не имеет никакого эффекта, тогда дополнительно установите -dFIXEDMEDIA, который будет игнорировать последующие запросы на изменение размера носителя.

Это должно позволить вам указать правильный размер носителя, если вы не знаете, каким должен быть размер носителя, вы можете использовать устройство Ghostscript -sDEVICE=bbox, чтобы узнать.

Наконец, Ghostscript имеет элементарное устройство отображения, которое вы можете использовать для просмотра отрисованного вывода без предварительного перехода к PNG.

...