Ghostscript отсекает часть изображения

У меня есть это изображение EPS с именем "input.eps".

Я запускаю следующую команду:

gs -dNOPAUSE -dBATCH -q -sDEVICE=ps2write -sOutputFile=output.eps input.eps

Результирующий выходной файл "output.eps" имеет правую часть отрубленной фигуры. Зачем?

Примечание. Причина, по которой я использую GhostScript, заключается в изменении шрифтов в файле input.eps, что я и сделаю, указав -I переключаться с пути к шрифту. Я не включил это в фрагмент кода, так как это не имеет отношения к проблеме.

1 ответ

Решение

Файлы EPS не запрашивают размер носителя (они предназначены для включения приложениями в программу PostScript). Так что, если вы не укажете Ghostscript, какой размер носителя использовать, у него нет другого выбора, кроме как использовать его по умолчанию.

В зависимости от вашей операционной системы (и, при необходимости, локали), это может быть либо Letter (612 на 792 единицы), либо A4 (596 на 842 единицы). Ваш файл EPS утверждает, что имеет ограничивающую рамку 1008 единиц на 504 единицы.

Очевидно, что ваш EPS не будет соответствовать медиа, и поэтому будет обрезан.

Вы можете либо обернуть EPS, как обычно, для включения в программу PostScript, и запросить там носитель, либо использовать переключатель -dEPSCrop, который считывает ограничивающую рамку из комментариев и использует ее для запроса носителя.

Обратите внимание, что, несмотря на существование BoundingBox, технически это не допустимый файл EPS. Он имеет неправильный идентификатор DSC и выполняет showpage.

В заключение, вы не будете "менять" шрифты в файле EPS, так как файл EPS не содержит никаких шрифтов, только ссылки на названия шрифтов.

Другие вопросы по тегам