PDF处理控件Aspose.PDF功能演示:使用Java查找和替换PDF中的文本

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

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

  • 使用Java查找和替换PDF中的文本
  • 替换PDF中特定页面上的文本
  • 使用正则表达式替换文本

PDF处理控件Aspose.PDF功能演示:使用Java查找和替换PDF中的文本整合所有格式的Aspose.Total永久授权正在火热促销中,联系客服立马1分钟了解全部咨询!

使用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 documentDocument pdfDocument = new Document("source.pdf");// Create TextAbsorber object to find all instances of the input search phraseTextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");// Accept the absorber for all pages of documentpdfDocument.getPages().accept(textFragmentAbsorber);// Get the extracted text fragments into collectionTextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();// Loop through the fragmentsfor (TextFragment textFragment : (Iterable) textFragmentCollection) {// Update text and other propertiestextFragment.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 filepdfDocument.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 documentDocument pdfDocument = new Document("source.pdf");// Create TextAbsorber object to find all instances of the input search phraseTextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");// Accept the absorber for first page of documentpdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);// Get the extracted text fragments into collectionTextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();// Loop through the fragmentsfor (TextFragment textFragment : (Iterable) textFragmentCollection) {// Update text and other propertiestextFragment.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 filepdfDocument.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 documentDocument pdfDocument = new Document("input.pdf");// Create TextAbsorber object to find all instances of the input search phraseTextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\d{4}-\d{4}"); // like 1999-2000// Set text search option to enable regular expression usageTextSearchOptions textSearchOptions = new TextSearchOptions(true);textFragmentAbsorber.setTextSearchOptions(textSearchOptions);// Accept the absorber for all pages of documentpdfDocument.getPages().accept(textFragmentAbsorber);// Get the extracted text fragments into collectionTextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();// Loop through the fragmentsfor (TextFragment textFragment : (Iterable) textFragmentCollection) {// Update text and other propertiestextFragment.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 filepdfDocument.save("Updated_Text.pdf");

如果你想试用Aspose的全部完整功能,可联系在线客服获取30天临时授权体验。


还想要更多吗可以点击阅读【2020 · Aspose最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(),我们很高兴为您提供查询和咨询
标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月19日
下一篇 2021年1月19日

相关推荐

发表回复

登录后才能评论