Как заставить `Gstscript` ps2pdf14` прекратить поднабор шрифтов - PullRequest
5 голосов
/ 13 сентября 2009

Я использую утилиту ps2pdf14, которая поставляется с Ghostscript, и у меня возникла проблема со шрифтами.

Кажется, что неважно, какие инструкции я передаю команде, он настаивает на подстановке любых шрифтов, которые он находит в исходном документе.

* 1006 например *

-dPDFSETTINGS#/prepress 
-dEmbedAllFonts#true 
-dSubsetFonts#false 
-dMaxSubsetPct#0

Обратите внимание, что # потому что команда выполняется в Windows, она такая же, как =.

Если у кого-нибудь есть идеи, как сказать ps2pdf, чтобы не использовать шрифты, я был бы очень признателен.

-------------------------- Примечания -------------------- ----------------------

Исходный файл представляет собой PDF-файл, содержащий встроенные шрифты, так что это шрифты, уже встроенные в исходный файл, которые мне необходимо предотвратить, чтобы быть подмножеством в целевом файле.

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

Ответы [ 2 ]

5 голосов
/ 06 июня 2010

Я не уверен, чего именно вы хотите достичь. Возможно вообще нет шрифтов встроено (даже не как подмножество)? Или это «Я хочу не подмножество, а полный шрифт»?

Примечание 1:

  • Утилита ps2pdf14 - это пакетный файл, который вызывает действительный gswin32c.exe с предварительно установленным массивом параметров командной строки. Вы можете более гибко экспериментировать, если полностью создаете командную строку gswin32c.

Примечание 2:

  • Ghostscript не может удалить шрифты из исходного PDF (по крайней мере, AFAIK).

Я всегда успешно управлял политиками встраивания шрифтов с помощью следующих командных строк:

  gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -sOutputFile=c:/path/to/my/output.pdf ^
    -sDEVICE=pdfwrite ^
    -dPDFSETTINGS=/prepress ^
    -dCompressFonts=false ^
    -dSubsetFonts=false ^
    -dEmbedAllFonts=true ^
    -c ".setpdfwrite <</NeverEmbed [ ]>> setdistillerparams" ^
    -f c:/path/to/my/postscript.ps

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

  gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -sOutputFile=c:/path/to/my/output.pdf ^
    -sDEVICE=pdfwrite ^
    -dPDFSETTINGS=/default ^
    -dEmbedAllFonts=false ^
    -c ".setpdfwrite <</AlwaysEmbed [ ]>> setdistillerparams" ^
    -f c:/path/to/my/postscript.ps

Примечание 3:

  • часть .setpdfwrite использует значения по умолчанию, которые считаются полезными для создания PDF. Если он появляется последним в командной строке, он может переопределить то, что вы установили ранее. Следовательно, части /NeverEmbed [ ] и / или /AlwaysEmbed [ ] p добавляются после , непосредственно перед вызовом входного файла.
0 голосов
/ 17 сентября 2009

Попробуйте создать файл настроек, содержащий:

<< / SubsetFonts false >> setdistillerparams

...