![如何找出 PDF 文档中特定字体的使用位置](https://linux22.com/image/1220274/%E5%A6%82%E4%BD%95%E6%89%BE%E5%87%BA%20PDF%20%E6%96%87%E6%A1%A3%E4%B8%AD%E7%89%B9%E5%AE%9A%E5%AD%97%E4%BD%93%E7%9A%84%E4%BD%BF%E7%94%A8%E4%BD%8D%E7%BD%AE.png)
对于使用多种字体的 PDF(例如,在 Acrobat Reader 中,选择“文件”>“属性”>“字体”时可以看到所使用的字体),我该如何找出在哪里文档中使用了某种字体(使用 Adobe Acrobat 7、Reader 或免费 PDF 工具)
需要说明的是:我不想找到某段文本中使用的字体(我知道如何使用 Acrobat 9 Professional 来做到这一点,请参阅这个超级用户问题)相反,我想找到在哪里使用特定的字体。
答案1
这个问题现在有点老了,但我是通过谷歌找到的,其他人可能也会。我的解决方案是创建一个 Preflight 配置文件(Acrobat 9 Pro),但字体信息出错了。单击结果中的字体名称,然后跳转到页面并突出显示文本。缺点是您获得按页面而不是按字体名称组织的所有页面上的所有字体的列表,但它为我提供了一个解决方案。
1) 创建新的自定义预检规范 高级|预检|选项|创建新的预检规范
2)为配置文件命名(例如 Fontfinder)
3)在对话框左侧单击“自定义检查”
4) 在对话框右侧的空白框下方单击加号以创建新的检查并将其包含在当前配置文件中
5)点击组中的“文本”,底部属性为“文本大小”。选择此项并点击“添加”
6) 下面的窗格现在有更多选项。单击可能标记为“等于”的下拉选项,然后选择“小于”
7)在数字字段中输入一个较大的值。我输入了 500
8) 在检查触发报告为...时,在对话框的左上角输入文本大小(例如,文本大小为 500 pt 或更小),然后单击“确定”。窗格中应该有一个新的自定义检查,旁边有一个红色十字。如果十字不是红色的,请单击检查标签,然后选择窗格下方的“错误”
重复上述步骤进行另一次错误检查,但将 500 的选项更改为“大于或等于”,并检查报告是否为文本 500 pt 或更大
9)在编辑个人资料对话框中单击“确定”
10)在 PDF 上运行配置文件
我将字体设置为大点尺寸的错误,以便所有错误都会在一个组中报告。第二次检查只是捕获任何大于该尺寸的字体。我想您可以检查 pt 大小 50000 并得到相同的结果。
答案2
以下是找出答案的方法对于每个单独的页面上面使用了哪一套字体。(抱歉,我不知道如何让字体使用的位置感知比页面感知更具体,而无需借助昂贵的商业软件,例如 callassoftware.com 的pdfToolbox4或 Enfocus'进站。
此方法使用 XPDFpdffonts.exe
实用程序,这是一个 GPL 许可的免费软件:
- 去:http://www.foolabs.com/xpdf/download.html并下载:ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl4-win32.zip。
- 将 *.zip 文件解压到某个目录并找到其中包含的各种 *.exe 实用程序。
现在,要显示文档第 22 页使用的所有字体,请运行:
pdffonts.exe -f 22 -l 22 c:\path\to\some\pdf.pdf
查看全部完整文档中使用的字体,只需运行:
pdffonts.exe c:\path\to\some\pdf.pdf
要获取 22 页 PDF 中每页使用的字体列表,只需使用:
for /l %i in (1,1,22) do ^ (echo.PAGE %i & pdffonts -f %i -l %i c:\path\to\some\pdf.pdf)
答案3
您也可以使用 来执行此操作pdf.js
,即使是 Firefox 中集成的版本。参考
首先,你必须启用调试模式(默认情况下是禁用的为了安全原因,做不是完成后忘记重新禁用它):转到about:config
并设置pdfjs.pdfBugEnabled
为true
(稍后false
重新禁用)。
然后,导航到 JS 文件,例如通过file:///home/myusername/
。URL 现在看起来像这样:file:///home/myusername/filename.pdf
附加#pdfBug=all
到 URL。您可能需要F5按 重新加载页面。它现在看起来类似于:
您会注意到右侧的字体列表。如果您勾选其中一个复选框,页面上使用所选字体的位置将以半透明的黄色显示。
您可能希望更改颜色。在 Firefox 版本中,您可以通过勾选一种字体(使其可见)、按 F12、使用选择器单击一个突出显示的文本、在 CSS 规则选项卡中向下滚动到 CSS 类.debuggerShowText
并更改其样式来实现:
我还没有在独立pdf.js
版本上尝试过这个功能,但我确信(通过参考)这是可行的;web/debugger.css
具有所讨论的风格。
答案4
在由 Acrobax X Preflight 创建的报告中,单击报告窗口左下角的“在快照中显示”按钮,然后在窗口列表中单击 +Overview 和 +Pages,列出 pdf 的每一页,单击 +Page: 1 例如,单击 +Fonts,列出页面的字体,单击字体,它所使用的文本将显示在 Preflight Snap View 窗口中。如果需要,您可以使用 acrobat 中的 find 来找到文本。我发现它并不总是在报告的页面上,但快照视图确实准确地显示了使用特定字体的文本,因此需要使用常规文本查找。