Expertus metuit
Внедряем шрифты в готовый PDF-файл
Опубликовано 2013-01-21 в 16:33

Иногда нужно внедрить шрифты в уже существующий PDF-файл, но ссылки на шрифты в котором относительные, например, команда pdffonts показывает такое:

% pdffonts build.pdf
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
Helvetica                            Type 1            no  no  no       2  0
Helvetica-Bold                       Type 1            no  no  no       3  0
ZapfDingbats                         Type 1            no  no  no     249  0
Courier                              Type 1            no  no  no     252  0
Symbol                               Type 1            no  no  no     253  0
Helvetica-Oblique                    Type 1            no  no  no     261  0
Helvetica-BoldOblique                Type 1            no  no  no     430  0

Видно, что все шрифты не внедрённые (колонка emb). Спасает gs:

gs -q -dNOPAUSE -dBATCH -dPDFSETTINGS=/prepress -sDEVICE=pdfwrite -sOutputFile=output.pdf build.pdf

После её выполнения всё в порядке:

% pdffonts output.pdf 
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
BOTQQP+Helvetica                     Type 1C           yes yes no     619  0
BHJYCF+Helvetica-Bold                Type 1C           yes yes no     617  0
AUENQH+ZapfDingbats                  Type 1C           yes yes yes    865  0
KTOSAE+Symbol                        Type 1C           yes yes no     874  0
UMOKIT+Courier                       Type 1C           yes yes no     872  0
LJPUJQ+Helvetica-Oblique             Type 1C           yes yes no     901  0
YQLVGH+Helvetica-BoldOblique         Type 1C           yes yes no    1408  0

P.S. На названия конкретных шрифтов не обращайте внимания, по сути там будут те шрифты, в которые преобразуются алиасы типа Helvetica на вашей машине.

Комментарии

Текст комментария (допустимая разметка: *курсив*, **полужирная**, [ссылка](http://example.com) или <http://example.com>) Посетители-анонимы, обратите внимение, что более чем одна гиперссылка в тексте (включая оную из поля «веб-сайт») приведёт к блокировке комментария для модерации. Зайдите на сайта с использованием аккаунта на twitter, например, чтобы посылать комментарии без этого ограничения.
Имя (обязательно, 50 символов или меньше)
Опциональный email, на который получать ответы (не будет опубликован)
Веб-сайт
© 2006—2024 Sergey Stolyarov | Работает на pyrengine