在 PDF Java 中查找和替换文本

在各种情况下,您可能需要查找和替换 PDF 文档中的特定文本。但是,手动搜索和更新每个事件可能会花费您额外的时间和精力。对于这种情况,查找和替换选项使您的生活更轻松。在本文中,您将学习如何使用 Java 在 PDF 文档中查找和替换文本。

用于在 PDF 中查找和替换文本的 Java API - 免费下载

Aspose.PDF for Java 设计用于在 Java 应用程序中生成和操作 PDF 文件。该 API 提供了广泛的基本和高级 PDF 操作功能,包括查找和替换文本。您可以 下载 API 或使用以下 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>21.1</version>    
</dependency>

使用 Java 查找和替换 PDF 中的文本

为了替换 PDF 中的特定文本,您将首先获取与搜索字符串匹配的所有文本片段。拥有它们后,只需将每个片段替换为更新的文本。

以下是使用 Java 在 PDF 文件中查找和替换文本的步骤。

以下代码示例显示了如何在 PDF 中查找和替换文本。

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

// 创建 TextAbsorber 对象以查找输入搜索短语的所有实例
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

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

// 将提取的文本片段放入集合中
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// 遍历片段
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// 更新文本和其他属性
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// 保存更新的 PDF 文件
pdfDocument.save("Updated_Text.pdf");

在 PDF 的特定页面上搜索和替换文本

无需在整个 PDF 中查找和替换文本,您可以指定要替换出现的文本的单个页面。在这种情况下,您将仅通过指定页面索引来接受特定页面的 TextFragmentAbsorber

以下是在 Java 中搜索和替换 PDF 中特定页面上的文本的步骤。

以下代码示例展示了如何使用 Java 在 PDF 中的特定页面上查找和替换文本。

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

// 创建 TextAbsorber 对象以查找输入搜索短语的所有实例
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// 接受文件第一页的吸收体
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);

// 将提取的文本片段放入集合中
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// 遍历片段
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// 更新文本和其他属性
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// 保存更新的 PDF 文件
pdfDocument.save("Updated_Text.pdf");

在 PDF 中使用正则表达式查找和替换文本

您还可以指定正则表达式来搜索与特定模式(例如电子邮件、SSN 等)匹配的文本。以下是使用 Java 定义和使用正则表达式来搜索和替换 PDF 中的文本的步骤。

以下代码示例展示了如何使用正则表达式查找和替换 PDF 中的文本。

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

// 创建 TextAbsorber 对象以查找输入搜索短语的所有实例
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000

// 设置文本搜索选项以启用正则表达式使用
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);

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

// 将提取的文本片段放入集合中
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// 遍历片段
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// 更新文本和其他属性
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}

// 保存更新的 PDF 文件
pdfDocument.save("Updated_Text.pdf");

获取免费 API 许可证

您可以免费试用该 API,不受评估限制。 获取免费的临时许可证 现在。

结论

在本文中,您学习了如何使用 Java 查找和替换 PDF 中的文本。此外,您还了解了如何使用正则表达式来搜索和替换遵循特定模式的文本。您可以使用 documentation 探索有关 Java PDF API 的更多信息。

也可以看看