Ответ 1
Да, вы можете использовать Ghostscript для достижения желаемого.
I. Для версий Ghostscript до 9.14
Вам нужно пройти 2 шага:
-
Преобразуйте PDF в файл PostScript, но используйте побочный эффект относительно неизвестного параметра: он называется
-dNOCACHE
. Это преобразует все используемые шрифты для наложения фигур:gs -o somepdf.ps -dNOCACHE -sDEVICE=pswrite somepdf.pdf
-
Преобразуйте PS обратно в PDF (и, возможно, снова удалите промежуточный PS):
gs -o somepdf-with-outlines.pdf -sDEVICE=pdfwrite somepdf.ps rm somepdf.ps
Этот метод не является надежным долговременным, потому что разработчики Ghostscript заявили, что -dNOCACHE
может отсутствовать в будущих версиях.
Примечание. полученный PDF файл, скорее всего, будет больше исходного. Кроме того, без дополнительных параметров командной строки все изображения в исходном PDF файле, вероятно, также будут обработаны в соответствии с настройками по умолчанию Ghostscript. Это может привести к нежелательным побочным эффектам. Эти побочные эффекты можно избежать, добавив еще больше параметров командной строки.
II. Ghostscript версии 9.15 или новее
Ghostscript версия 9.15 (выпущена в сентябре 2014 г.) поддерживает новый параметр командной строки:
-dNoOutputFonts
Это приведет к тому, что выходные устройства pdfwrite
, ps2write
и eps2write
"будут" сглаживать "глифы в" основные "операции маркировки (вместо написания шрифтов на выходе)".
Это означает: можно избежать двух шагов, описанных для версий до 9.15 GS. Желаемый результат может быть достигнут с помощью одной команды:
gs -o file-with-outlines.pdf -dNoOutputFonts -sDEVICE=pdfwrite file.pdf
Примечание. то же предостережение верно, как уже отмечено в части I. Если ваш PDF файл содержит изображения, могут возникнуть нежелательные побочные эффекты, введенные простой командной строкой выше. Чтобы избежать этого, вам нужно добавить более конкретные параметры.