如何找出 PDF 文档中引用了哪些字体以及嵌入了哪些字体

Posted

技术标签:

【中文标题】如何找出 PDF 文档中引用了哪些字体以及嵌入了哪些字体【英文标题】:How to find out which fonts are referenced and which are embedded in a PDF document 【发布时间】:2010-10-11 12:09:25 【问题描述】:

我们对 PDF 文档中的字体有一点问题。为了解决我想检查的问题,哪些字体实际上嵌入在 pdf 文档中,哪些仅被引用。有没有一种简单(而且像免费一样便宜)的方法来做到这一点?

【问题讨论】:

【参考方案1】:

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

【讨论】:

为避免链接腐烂,请提供示例和/或一些文档。 它似乎已经默认安装在我的 Lubuntu 14.10 安装中。 mac用户,brew install poppler轻松获取pdffonts命令 在 evince 文档查看器中,转到文件 --> 属性 --> 字体选项卡 注意:在 Windows 上,pdffonts 可以作为 Poppler 巧克力包的一部分安装chocolatey.org/packages/poppler【参考方案2】:

如果你只是想找出字体名称就简单多了:从终端运行

strings yourPDFfilepath.pdf | grep FontName

【讨论】:

Windows:findstr FontName yourPDFfilepath.pdf 对我不起作用。 (Mac 使用 Latex 生成的 PDF。)pdffonts 显示两种嵌入字体;这没有显示。显然,这种方法有时会奏效,但并不可靠。 尝试在 fontName 上使用小写 f @texnic 试试这个。右键单击并在文本编辑器(例如记事本)中打开文件并搜索 FontName。 FontName 在我刚刚尝试过的 PDF 中找不到。刚找grep -i font给了:/BaseFont /Helvetica【参考方案3】:

我终于得到了一个实际上似乎嵌入了字体的示例文件。

使用普通的 Adob​​e Reader(如果您愿意,也可以使用 Foxit)。在结果对话框中选择文件-> 属性,选择字体选项卡。您将看到字体列表。嵌入的将在字体名称后面的 ( ) 中说明这一事实。

【讨论】:

Mac版有这个标签吗?我找不到它,我有一台 Mac):【参考方案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

【讨论】:

以上是关于如何找出 PDF 文档中引用了哪些字体以及嵌入了哪些字体的主要内容,如果未能解决你的问题,请参考以下文章

怎么在PDF文档中内嵌入字体

如何确定 pdf 文档中单词的字体系列和字体大小?

Itext 在 PDF 中嵌入字体

使用PyPDF2检测由Google文档生成的PDF文件中的非嵌入式字体

Word转PDF文件,如何在PDF中嵌入字体

可以在没有嵌入字体的情况下编辑PDF吗?