Как заставить Ghostscript использовать встроенные шрифты в PDF - PullRequest
8 голосов
/ 20 апреля 2010
gs -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH \
   -sDEVICE=pdfwrite -sOutputFile=output.pdf input.pdf

Я использую (в любом случае пытаюсь) использовать Ghostscript, чтобы уменьшить размер моего файла PDF. Вышеприведенная команда выглядит так, как будто она работает, она значительно уменьшает размер файла, но затем некоторые поля искажаются. Что касается того, как я могу отследить это, это делает замену шрифта. IE, тот же текст = тот же искаженный текст.

Шрифты встраиваются в PDF, когда он попадает ко мне. Кроме того, я попытался добавить все шрифты в Fontmap.

Любые идеи. В идеале мне бы хотелось использовать встроенные шрифты без необходимости обновлять шрифты системы gs / редактировать карту шрифтов и т. Д. Я использую Ubuntu 9.10, а встроенные шрифты являются шрифтами Windows, Arial / TimesNewRoman.

Спасибо.

1 Ответ

15 голосов
/ 05 июня 2010

Ретроспективно встраивание шрифтов, которые не были встроены в исходный PDF, увеличивает размер файла, а не уменьшает его.

Тем не менее, все еще может быть возможность уменьшить общий размер файла за счет уменьшения разрешения встроенных изображений ... зависит от ваших предпочтений и потребностей.

Вы можете попробовать варианты следующей командной строки. Он будет встраивать все шрифты (даже «базовые 14»), но вставлять только необходимые глифы («подмножество» исходного шрифта), а также сжимать шрифты:

gs \
   -dCompatibilityLevel=1.4 \
   -dPDFSETTINGS=/screen \
   -dCompressFonts=true \
   -dSubsetFonts=true \
   -dNOPAUSE \
   -dBATCH \
   -sDEVICE=pdfwrite \
   -sOutputFile=output.pdf \
   -c ".setpdfwrite <</NeverEmbed [ ]>> setdistillerparams" \
   -f input.pdf
...