通常在这种情况下,如果您无法从 Acrobat(阅读器)窗口中选择、复制和粘贴文本,那么还有另一个选项可能仍然有效:
- 打开“文件”菜单,
- 选择“另存为...”,
- 选择“文本(正常)(*.txt)”,
- 浏览到目标目录,
- 键入要用于文本文件的名称。
您将拥有文件中所有页面的所有文本,并且需要找到您最初想要复制'n'paste 的位置——因为它不如直接复制'n'paste 舒服。但它更可靠地工作......
它也适用于 Linux(但您必须从文件菜单acroread
中选择“另存为文本...” )。
更新
您可以使用pdffonts
命令行实用程序来快速分析 PDF 使用的字体。
这是一个示例输出,它演示了很可能会出现文本提取问题的位置。它使用来自GitHub-Repository的这些手动编码的 PDF 文件之一,该文件的创建是为了提供 PDF 示例文件,这些文件有很好的注释,可以在文本编辑器中轻松打开:
$ pdffonts textextract-bad2.pdf
name type encoding emb sub uni object ID
------------------------------- ------------ ----------- --- --- --- ---------
BAAAAA+Helvetica TrueType WinAnsi yes yes yes 12 0
CAAAAA+Helvetica-Bold TrueType WinAnsi yes yes no 13 0
如何解释这张表?
- 上述 PDF 文件使用两种子集字体(如其名称的
BAAAAA+
和CAAAAA+
前缀以及列中的yes
条目所示sub
)Helvetica
和Helvtica-Bold
.
- 两种字体都是 type
TrueType
。
- 两种字体都使用
WinAnsi
编码(字体编码将 PDF 源代码中使用的字符标识符映射到应绘制的字形)。但是,仅对于字体,PDF 中/Helvetica
有一个可用的表(因为没有),如 - 列中的/所示)。/ToUnicode
/Helvetica-Bold
yes
no
uni
该/ToUnicode
表需要提供从字符标识符/代码到字符的反向映射。
缺少/ToUnicode
特定字体的表格几乎总是一个明确的指标,即无法从 PDF 中提取或复制“n”粘贴使用该字体的文本字符串。(即使有一个表格/ToUnicode
,文本提取仍可能会造成问题,因为该表格可能已损坏、不正确或不完整——正如在许多真实世界的 PDF 文件中所看到的那样,也正如上面的一些伴随文件所展示的那样链接的 GitHub 存储库。)