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 文件,您可以放入要读取的文件名。下一主题Java 中查找奇数出现次数 |
? File: SwapWithoutTemp .java public class SwapWithoutTemp { public static void main(String args[]) { String a = "Love"; String b = "You"; System.out.println("Before swap: " + a + " " + b); a = a + b; b = a.substring(0, a.length() - b.length()); a = a.substring(b.length()); System.out.println("After : " + a + " " +...
阅读1分钟
? 在 C 和 C++ 等编程语言中,在函数或变量的实际实现之前,需要前向声明来通知编译器它的存在。这有助于在单独的文件中组织代码和解决依赖关系。然而,Java 由于...而以不同的方式处理这个问题。
阅读 3 分钟
Java 中的 CollationElementIterator ious() 方法及示例 java.text.CollationElementIterator 具有 ious() 函数。可以使用 CollationElementIterator 类获取前面的 Collator 元素。该方法返回前一个元素的值并将其迭代器前进到该元素。语法:public int ious() 参数:无参数可...
阅读 3 分钟
在 Java 中,处理日期和时间并非难事,因为 Java 提供了日期和时间 API,使开发人员的任务更加轻松。在本节中,我们将讨论如何从当前日期和任何特定日期减去天数。使用 Java...
阅读 3 分钟
这是谷歌、亚马逊、TCS、Accenture、Uber 等顶级 IT 公司面试中经常问到的一个非常有趣的问题。通过解决这个问题,可以检查面试者的逻辑能力、批判性思维和解决问题的能力。所以,在本节中,我们将...
阅读 3 分钟
Java 中 List 和 Set 的区别 在 JDK 2.0 中,我们使用 Vectors、Arrays 和 Hashtable 将对象分组到单个单元中。在 JDK 8 中,Collection 框架出现,它提供了多个接口来处理数据集合。List...
5 分钟阅读
广度优先搜索 (BFS) 是一种基本的搜索算法,用于遍历树或图。在 BFS 中,节点从给定的源节点按递增顺序进行遍历,其中一个给定级别上的所有节点都将在进入下一层之前进行探索……
5 分钟阅读
Java 中的堆实现 Java 中的堆是一种特殊的数据结构,其中根节点或父节点与左子节点和右子节点进行比较并按顺序排列。假设 x 是一个根节点,y 是一个子节点...
21 分钟阅读
进度条是一个水平或垂直的条,用于可视化操作的进度。用于渲染进度条的类是 'JProgressBar',它是 Java Swing 包的一部分。它通过填充来显示特定任务的进度...
11 分钟阅读
? 继承的概念允许类继承其他类的特性和属性。它是 OOP 的基本概念。因为在单继承中,一个类只能从一个超类继承。但是,Java 通过接口提供了实现多重继承的方式。使用接口,...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India