文档彩票走势图>>Aspose.PDF使用教程>>Aspose.PDF功能演示:使用Java查找和替换PDF中的文本
Aspose.PDF功能演示:使用Java查找和替换PDF中的文本
在各种情况下,可能需要查找并替换PDF文档中的特定文本。但是,手动查找和更新每个事件可能会花费您额外的时间和精力。在这种情况下,“查找并替换”选项使工作更轻松。在本文中,将学习如何使用Java自动查找和替换PDF文档中的文本。
- 使用Java查找和替换PDF中的文本
- 替换PDF中特定页面上的文本
- 使用正则表达式替换文本
Aspose.PDF for Java旨在从Java应用程序内部生成和处理PDF文件。该API提供了广泛的基本和高级PDF操作功能,包括查找和替换文本。感兴趣的朋友可点击下方按钮下载最新版。
使用Java查找和替换PDF中的文本
为了替换PDF中的特定文本,首先需要获取与搜索字符串匹配的所有文本片段。有了它们后,只需将每个片段替换为更新的文本即可。以下是在PDF文件中查找和替换文本的步骤。
- 使用Document类加载PDF文件。
- 创建一个TextFragmentAbsorber类的对象,并使用您要查找和替换的文本对其进行初始化。
- 使用Document.getPages()。accept(TextFragmentAbsorber)方法为PDF页面接受吸收器。
- 将由TextFragmentAbsorber.getTextFragments()返回的所有出现的文本获取到TextFragmentCollection对象中。
- 循环遍历TextFragmentCollection对象中的每个TextFragment,并使用TextFragment.setText(String)方法替换文本。
- 使用Document.save(String)方法保存更新的PDF文件。
下面的代码示例演示如何使用Java查找和替换PDF中的文本。
// Open document Document pdfDocument = new Document("source.pdf"); // Create TextAbsorber object to find all instances of the input search phrase TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample"); // Accept the absorber for all pages of document pdfDocument.getPages().accept(textFragmentAbsorber); // Get the extracted text fragments into collection TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments(); // Loop through the fragments for (TextFragment textFragment : (Iterable) textFragmentCollection) { // Update text and other properties textFragment.setText("New Pharase"); textFragment.getTextState().setFont(FontRepository.findFont("Verdana")); textFragment.getTextState().setFontSize(22); textFragment.getTextState().setForegroundColor(Color.getBlue()); textFragment.getTextState().setBackgroundColor(Color.getGray()); } // Save the updated PDF file pdfDocument.save("Updated_Text.pdf");
替换PDF中特定页面上的文本
除了在整个PDF中查找和替换文本外,您还可以指定一个页面来替换出现的文本。在这种情况下,仅通过指定页面索引即可接受特定页面的TextFragmentAbsorber。以下是在PDF的特定页面上查找和替换文本的步骤。
- 使用Document类加载PDF文件。
- 创建一个TextFragmentAbsorber类的对象,并使用您要查找和替换的文本对其进行初始化。
- 使用Document.getPages()。get_Item(Int pageIndex).accept(TextFragmentAbsorber)方法接受PDF中特定页面的吸收器。
- 将由TextFragmentAbsorber.getTextFragments()返回的所有出现的文本获取到TextFragmentCollection对象中。
- 循环遍历TextFragmentCollection对象中的每个TextFragment,并使用TextFragment.setText(String)方法替换文本。
- 使用Document.save(String)方法保存更新的PDF文件。
下面的代码示例演示如何使用Java在PDF的特定页面上查找和替换文本。
// Open document Document pdfDocument = new Document("source.pdf"); // Create TextAbsorber object to find all instances of the input search phrase TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample"); // Accept the absorber for first page of document pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber); // Get the extracted text fragments into collection TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments(); // Loop through the fragments for (TextFragment textFragment : (Iterable) textFragmentCollection) { // Update text and other properties textFragment.setText("New Pharase"); textFragment.getTextState().setFont(FontRepository.findFont("Verdana")); textFragment.getTextState().setFontSize(22); textFragment.getTextState().setForegroundColor(Color.getBlue()); textFragment.getTextState().setBackgroundColor(Color.getGray()); } // Save the updated PDF file pdfDocument.save("Updated_Text.pdf");
使用PDF中的正则表达式替换文本
还可以指定正则表达式来查找与特定模式(例如电子邮件,SSN等)匹配的文本。以下是定义和使用正则表达式查找和替换PDF中文本的步骤。
- 使用Document类加载PDF文件。
- 创建TextFragmentAbsorber类的对象,并使用要使用的正则表达式对其进行初始化。
- 创建TextSearchOptions类的对象,并将其初始化为true以启用基于正则表达式的搜索。
- 使用TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions)方法设置选项。
- 使用Document.getPages()。accept(TextFragmentAbsorber)方法为PDF页面接受吸收器。
- 将所有找到的由TextFragmentAbsorber.getTextFragments()返回的文本的出现都获取到TextFragmentCollection对象中。
- 循环遍历TextFragmentCollection对象中的每个TextFragment,并使用TextFragment.setText(String)方法替换文本。
- 使用Document.save(String)方法保存更新的PDF文件。
下面的代码示例演示如何使用Java中的正则表达式查找和替换PDF中的文本。
// Open document Document pdfDocument = new Document("input.pdf"); // Create TextAbsorber object to find all instances of the input search phrase TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000 // Set text search option to enable regular expression usage TextSearchOptions textSearchOptions = new TextSearchOptions(true); textFragmentAbsorber.setTextSearchOptions(textSearchOptions); // Accept the absorber for all pages of document pdfDocument.getPages().accept(textFragmentAbsorber); // Get the extracted text fragments into collection TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments(); // Loop through the fragments for (TextFragment textFragment : (Iterable) textFragmentCollection) { // Update text and other properties textFragment.setText("New Pharase"); textFragment.getTextState().setFont(FontRepository.findFont("Verdana")); textFragment.getTextState().setFontSize(22); textFragment.getTextState().setForegroundColor(Color.getBlue()); textFragment.getTextState().setBackgroundColor(Color.getGray()); } // Save the updated PDF file pdfDocument.save("Updated_Text.pdf");
如果您有任何疑问或需求,请随时加入Aspose技术交流群(761297826),我们很高兴为您提供查询和咨询。