从pdf java中提取文本

在这篇文章中,您将学习如何使用 Java 无缝地从 PDF 文件中提取文本。文本提取可用于各种场景,例如文本分析、信息检索、文档解析等。由于 PDF 是使用最广泛的数字文档之一,因此从 PDF 文档中提取文本的用例数量较多。因此,让我们开始检查如何从 Java 应用程序中执行 PDF 文本提取。

从 PDF 中提取文本的 Java API - 免费下载

Aspose.PDF for Java 是一个著名的 PDF 文件操作 API,它提供了广泛的功能来创建和处理 PDF 文件。该 API 包含一个强大的文本提取器,它提供了在几行代码内从 PDF 文档中提取文本的各种方法。您可以下载 API 的 JAR 或使用以下配置将其安装在基于 Maven 的应用程序中。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.11</version>
</dependency>

使用 Java 从 PDF 中提取文本

以下是使用 Aspose.PDF for Java 从 PDF 文档中提取文本的步骤。

以下代码示例展示了如何使用 Java 从 PDF 中提取文本。

// 如需完整的示例和数据文件,请访问 https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// 打开文档
Document pdfDocument = new Document("input.pdf");

// 创建 TextAbsorber 对象以提取文本
TextAbsorber textAbsorber = new TextAbsorber();

// 接受所有页面的吸收器
pdfDocument.getPages().accept(textAbsorber);

// 获取提取的文本
String extractedText = textAbsorber.getText();

// 创建作家并打开文件
java.io.FileWriter writer = new java.io.FileWriter(new java.io.File("Extracted_text.txt"));
writer.write(extractedText);

// 将一行文本写入文件 tw.WriteLine(extractedText);
// 关闭流
writer.close();

从 PDF 中的特定页面提取文本

您还可以使用以下步骤从 PDF 文档的特定页面中提取文本。

以下代码示例展示了如何使用 Java 从 PDF 的特定页面中提取文本。

// 如需完整的示例和数据文件,请访问 https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// 打开文档
Document pdfDocument = new Document("input.pdf");
// 创建文本设备
TextDevice textDevice = new TextDevice();

// 设置文本提取选项 - 设置文本提取模式(原始或纯)
TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Raw);

textDevice.setExtractionOptions(textExtOptions);

// 从 PDF 的第一页获取文本并将其保存为文件格式
textDevice.process(pdfDocument.getPages().get_Item(1), "ExtractedText.txt");

从 PDF 中的页面区域提取文本

您还可以从 PDF 页面的特定区域提取文本。为此,您可以定义一个矩形来覆盖需要从中提取文本的区域。以下是从页面区域中提取文本的步骤。

以下代码示例展示了如何从 Java 中的特定页面区域提取文本。

// 如需完整的示例和数据文件,请访问 https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// 打开文档
Document doc = new Document("page_0001.pdf");

// 创建 TextAbsorber 对象以提取文本
TextAbsorber absorber = new TextAbsorber();
absorber.getTextSearchOptions().setLimitToPageBounds(true);
absorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350));
// 接受第一页的吸收器
doc.getPages().get_Item(1).accept(absorber);

// 获取提取的文本
String extractedText = absorber.getText();
// 创建作家并打开文件
BufferedWriter writer = new BufferedWriter(new FileWriter(new java.io.File("ExtractedText.txt")));
// 写入提取的内容
writer.write(extractedText);
// 关闭作家
writer.close();

结论

在本文中,您学习了如何使用 Java 从 PDF 中提取文本。您已经看到了各种文本提取方法,例如从整个 PDF、特定页面或特定页面区域中提取文本。您可以使用 documentation 了解有关 Java PDF API 的更多信息。

也可以看看

信息:Aspose 最近开发了一项免费的在线 Text to GIF 服务,允许您为文本制作动画或从简单文本生成 GIF。