Apache PDFBox 库是一个用于处理 PDF 文档的开源 Java 工具。该项目允许创建新的 PDF 文档、操作现有文档以及从文档中提取内容的能力。 PDFBox 还包括几个命令行实用程序。 PDFBox 是根据 Apache 许可证 2.0 版发布的。
PDFBox 是 Apache 软件基金会的一个项目。
您可以从我们的下载页面下载当前正在开发的版本或旧版本的二进制版本。
您需要 Java 11(或更高版本)和 Maven 3 来构建 PDFBox。推荐的构建命令是:
mvn clean install
默认构建将编译Java源并将二进制类打包成jar包。有关所有其他可用的构建选项,请参阅 Maven 文档。
有多种方法可以帮助我们改进 PDFBox。
请遵循我们支持页面上的指南。
如果您对如何使用 PDFBox 有疑问,请在用户邮件列表中提问。这将为您提供整个社区的帮助。
源中的 PDFBox 示例和测试代码也将提供附加信息。
Stack Overflow 等网站上还提供其他资源。
如果您确定发现了错误,请在我们的问题跟踪器中报告该问题。
请参阅问题跟踪器以获取已知问题和请求的功能的完整列表。一些更常见的问题是:
当您提取文本时,您会得到类似“G38G43G36G51G5”的文本,而不是您期望的文本。这是因为字符是无意义的内部编码,指向嵌入在 PDF 文档中的字形。访问文本的唯一方法是使用 OCR。这可能是未来的增强。
您会收到类似java.io.IOException: Can't handle font width
错误消息,这可能是由于您的类路径中没有org/apache/pdfbox/resources目录。最简单的解决方案是将apache-pdfbox-xxxjar包含在类路径中。
您得到的文本具有正确的字符,但顺序错误。这可能是因为您没有启用排序。 PDF 文件中的文本以块的形式存储,并且块不需要按照它们在页面上显示的顺序存储。默认情况下,PDFBox 不对文本进行排序。
集体作品:版权所有 2015 Apache 软件基金会。
根据一项或多项贡献者许可协议获得 Apache Software Foundation (ASF) 的许可。有关版权所有权的其他信息,请参阅随本作品分发的通知文件。 ASF 根据 Apache 许可证 2.0 版(“许可证”)向您授予此文件的许可;除非遵守许可证,否则您不得使用此文件。您可以在以下位置获取许可证副本:
https://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件均按“原样”分发,不带任何明示或暗示的保证或条件。请参阅许可证,了解许可证下管理权限和限制的特定语言。
该发行版包括加密软件。您当前居住的国家/地区可能对加密软件的进口、拥有、使用和/或再出口到其他国家/地区有限制。在使用任何加密软件之前,请检查您所在国家/地区有关进口、拥有或使用以及再出口加密软件的法律、法规和政策,以了解是否允许这样做。请参阅 https://www.wassenaar.org/ 了解更多信息。
美国政府商务部工业与安全局 (BIS) 已将此软件分类为出口商品控制编号 (ECCN) 5D002.C.1,其中包括使用非对称算法或执行加密功能的信息安全软件。此 Apache Software Foundation 发行版的形式和方式使其符合目标代码和源代码的许可证例外 ENC 技术软件无限制 (TSU) 例外(请参阅 BIS 出口管理条例第 740.13 节)的出口资格。
以下提供了有关所含加密软件的更多详细信息:
Apache PDFBox 使用 Java 加密体系结构 (JCA) 和 Bouncy Castle 库来处理 PDF 文档中的加密。