- 使用Java查找和替换PDF中的文本
- 替换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 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进行处理,非常感谢!