У нас небольшая проблема с шрифтами в PDF-документах. Чтобы перенести проблему на проблему, я хотел бы проверить, какие шрифты действительно встроены в документ pdf и на которые ссылаются только ссылки. Есть ли простой (и дешевый, как в свободном) способ сделать это?
Как узнать, какие шрифты указаны и которые встроены в документ PDF
Ответ 1
Наконец-то я получил пример файла, который, по-видимому, имеет встроенные шрифты.
Использование обычного Adobe Reader (или Foxit, если вы предпочитаете). Выберите "Файл- > Свойства" в появившемся диалоге выберите вкладку "Шрифт". Вы увидите список шрифтов. Вложенные будут указывать этот факт в() за именем шрифта.
Ответ 2
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
Ответ 3
Гораздо проще, если вы просто хотите узнать имена шрифтов: запустите это с терминала
strings yourPDFfilepath.pdf | grep FontName
Ответ 4
CAM:: PDF имеет репортер шрифтов, доступный как утилита командной строки или через вызов библиотеки. Если вы запустите "listfont.pl file.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
Ответ 5
Вы можете извлечь шрифты из PDF с помощью Online Font Converter
Ответ 6
используя бесплатный iText (или iTextSharp, если вы на .NET), вы можете написать утилиту, которая будет извлекать для вас эту информацию с использованием метода BaseFont.GetDocumentFonts.
Прочитайте эту ссылку для кода