PDF文档中的字体有点问题。为了解决我想检查的问题,哪些字体实际嵌入在pdf文档中,哪些字体仅被引用。是否有一种简单(廉价和免费)的方式来做到这一点?
答案 0 :(得分:134)
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
答案 1 :(得分:85)
如果您只是想找出字体名称,那就更简单了:从终端运行
strings yourPDFfilepath.pdf | grep FontName
答案 2 :(得分:48)
我终于得到了一个实际上似乎嵌入了字体的示例文件。
使用普通的Adobe Reader(如果您愿意,可以使用Foxit)。在生成的Dialog上选择File-> Properties,选择Font选项卡。您将看到一个字体列表。嵌入的那些将在()后面的字体名称中声明这个事实。
答案 3 :(得分:5)
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
答案 4 :(得分:4)
答案 5 :(得分:1)
使用免费的iText(或者如果您使用的是iTextSharp),您可以编写一个实用程序,使用BaseFont.GetDocumentFonts方法为您提取此信息。
阅读this link代码