Как узнать, на какие шрифты ссылаются и которые встроены в PDF-документ
У нас есть небольшая проблема со шрифтами в PDF-документы. Чтобы указать на проблему, я хотел бы проверить, какие шрифты фактически встроены в документ pdf и на которые только ссылаются. Есть ли простой (и дешевый, как в бесплатном) способ сделать это?
6 ответов:
pdffonts
инструмент командной строки первоначально из Xpdf, теперь Poppler.этот инструмент доступен в большинстве дистрибутивов Linux в рамках
poppler-utils
пакета.пример использования и вывода:
$ pdffonts some.pdf name type emb sub uni object ID ------------------------------------ ----------------- --- --- --- --------- BAAAAA+Arial-Black TrueType yes yes yes 53 0 CAAAAA+Tahoma TrueType yes yes yes 28 0 DAAAAA+Wingdings-Regular TrueType yes yes yes 43 0 EAAAAA+Webdings TrueType yes yes yes 38 0 FAAAAA+Arial-BoldMT TrueType yes yes yes 33 0 GAAAAA+Tahoma-Bold TrueType yes yes yes 23 0 HAAAAA+OpenSymbol TrueType yes yes yes 48 0
гораздо проще, если вы просто хотите узнать имена шрифтов: запустить из терминала
strings yourPDFfilepath.pdf | grep FontName
Я, наконец, получил пример файла, который на самом деле кажется, внедренные шрифты.
с помощью обычного Adobe Reader (или Foxit, если вы предпочитаете). Выберите Файл - >свойства в полученном диалоговом окне выберите вкладку шрифт. Вы увидите список шрифтов. Те, которые встроены, будут указывать этот факт В ( ) за именем шрифта.
CAM:: PDF имеет font reporter, доступный как утилита командной строки или через вызов библиотеки. Если ты побежишь "listfont.pl файл.pdf " вы получаете такой вывод:
Page 1: Name: F1.0 Type: TrueType BaseFont: NZUXSR+Impact Encoding: MacRomanEncoding Widths: yes Characters: 0-255 Embedded: yes Name: F2.0 Type: TrueType BaseFont: XSFKRA+ArialMT Encoding: MacRomanEncoding Widths: yes Characters: 0-255 Embedded: yes
вы можете извлечь шрифт(ы) из PDF с помощью Онлайн Конвертер Шрифтов
используя бесплатный iText (или iTextSharp, если вы находитесь на .NET) вы можете написать утилиту, которая будет извлекать для вас эту информацию с помощью BaseFont.Метод GetDocumentFonts.
читать этой ссылке код