Java 中读取 PDF 文件

17 Mar 2025 | 4 分钟阅读

通过 Java 程序读取 PDF 文件与读取文本文件不同。读取 PDF 文件的方式有些不同。JDK 不提供任何读取 PDF 文件的类。为了读取 PDF 文件,我们需要依赖第三方库。有几个第三方库可用于读取 PDF 文件。因此,在本节中,我们将使用 Apache Tika 库来在 Java 中读取 PDF 文件。该库提供了一个通用 API 来解析文件。要访问和读取 PDF 文件,我们将使用以下类。

BodyContentHandler:这是一个内置类,用于创建一个文本处理器,该处理器将 XHTML 主体的字符事件写入并将其保存在内部字符串缓冲区中。BodyContentHandler 类的父类是 Java 中的 ContentHandlerDecorator 类。

PDFParser:Java 提供的另一个内置类是 PDFParser 类。它是解析 PDF 文件或文档中内容的类。该类负责提取表格、字符串和段落中的内容(不调用表格边界)。如果提供密码作为参数,PDFParser 也可以用于解析加密文件。

ParseContext:ParseContext 类是 org.apache.tika.parser 包的一部分,用于解析上下文,然后将其传递给 Tika 解析器。

读取 PDF 文件的步骤

步骤 1:创建一个内容处理器。

步骤 2:在正在使用的系统本地创建一个 PDF 文件。

步骤 3:现在,创建一个 FileInputStream,其路径与创建的 PDF 文件所在的路径相同。

步骤 4:对于 PDF 文件,借助元数据对象创建一个内容解析器。

步骤 5:PDFParser 类解析 PDF 文件。

步骤 6:显示 PDF 文件的内容。

实施

以下程序显示了如何读取和显示 PDF 文件的内容。

文件名:ReadPDFFile.java

让我们使用以下命令执行上述程序

编译:javac -cp .;tika.jar PrimePointEx.java

运行:java -cp .;tika.jar PrimePointEx

输出

Extracting the contents from the file:

A Simple PDF File
This is a small demonstration .pdf file -

just for use in the Virtual Mechanics tutorials. More text. And more
text. And more text. And more text. And more text.

And less text. And less text. And less text. And less text. And less
text. And less text. interesting, zzzzz. And less text. And less text. And
less text. And less text. And less text. And less text. And less text.
And less text. And less text.

And less text. And less text. And less text. And less text. And less
text. And less text. And less text. Even less. Continued on page 2 ...



Simple PDF File 2
...continued from page 1. Yet less text. And less text. And less text.
And less text. And less text. And less text. And less text. And less
text. Oh, how interesting typing this stuff. But not as interesting as watching
paint dry. And less text. And less text. And less text. And less text.
interesting.  less, a little less text. The end, that can be well or can't be well. However, we need to keep moving. That is how one should live the life. The content of the file ends here

注意:在执行上述程序之前,请确保已导入 tika.jar 文件,否则您将收到编译时或运行时错误。在进行编译或执行过程时,还要更新类路径。另外请注意,我们使用了 sample.pdf 文件,您可以放入要读取的文件名。