如何判断一个 PDF 文件是否具有“结构化内容”?
由于人们希望让 PDF 文件更易访问并能够从中提取内容(不仅仅是查看),Adobe 添加了一项称为“标记内容”(Marked Content)的功能。这使得标记的 PDF 文件可以包含额外的标签信息,从而保留文本的结构。然而,这项功能必须在创建 PDF 时启用——否则,额外的信息就不会存在!
要判断 PDF 文件是否以这种方式创建,其实非常简单。打开文件,用 Acrobat Reader 查看属性菜单——在高级部分的左下角,有一个名为“Tagged PDF”的选项,它会告诉你该 PDF 是否包含这些额外的标签。而这个文件并没有包含这些标签。
因此,这个 PDF 文件只会包含有限的结构化标签。
JPedal(一个用于转换、打印、查看 PDF 文件的 Java 库)中有一个 PDFUtilities 类,可以让你通过编程方式检查文件是否完全按照 PDF 规范进行了标记(即使没有完全标记,你仍然可能从中提取一些结构化内容)。
如果你可以创建标记的 PDF,那么建议默认启用这一功能——生成的文件并不会大多少,但如果将来需要提取文本,这会让操作更容易实现。
另请参阅相关文章《如何从 PDF 文件中提取文本》,该文讲解了如何使用 JPedal 从结构化 PDF 文件中提取 XML 内容。