彩票走势图

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

翻译|使用教程|编辑:李显亮|2020-12-24 10:13:54.030|阅读 651 次

概述:使用“查找并替换”选项可以一次性替换文档中的特定文本。本文介绍了如何在PDF文档中自动查找和替换文本功能。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

使用“查找并替换”选项可以一次性替换文档中的特定文本。这样,您不必手动定位和更新整个文档中每次出现的文本。本文甚至更进一步,介绍了如何在PDF文档中自动查找和替换文本功能。特别是,将学习如何使用C#在整个PDF,特定页面或页面区域中查找和替换文本。

  • 使用C#查找和替换PDF中的文本
  • 查找和替换特定页面中的文本
  • 定义PDF页面区域以查找和替换文本
  • 使用正则表达式查找和替换PDF中的文本

.NET的Aspose.PDF是一个C#类库,为.NET应用程序提供基本以及高级的PDF操作功能。该API还允许您以不同的方式无缝地查找和替换PDF文档中的文本。

点击下载最新版Aspose.PDF


17周年庆来啦!整合所有格式API处理控件Aspose.Total永久授权火热促销中,新购乐享85折起!立马1分钟了解全部!

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

以下是在PDF文档中查找和替换文本的步骤。

  • 使用Document类使用其路径加载PDF文档。
  • 创建TextFragmentAbsorber类的实例,并将搜索短语提供给其构造函数。
  • 使用Document.Pages.Accept(TextFragmentAbsorber)接受PDF所有页面的文本吸收器。
  • 将提取的文本片段获取到TextFragmentCollection对象中。
  • 遍历找到的TextFragmentCollection并替换每个片段中的文本。
  • 使用Document.Save(String)方法保存更新的PDF文档。

下面的代码示例演示如何使用C#查找和替换PDF中的文本。

// Open document
Document pdfDocument = new Document("Document.pdf");

// Create TextAbsorber object to find all instances of the input search phrase
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Accept the absorber for all the pages
pdfDocument.Pages.Accept(textFragmentAbsorber);

// Get the extracted text fragments
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Loop through the fragments
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Update text and other properties
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}
            
// Save resulting PDF document.
pdfDocument.Save("updated-document.pdf");

使用C#查找和替换特定页面中的文本

以下是在PDF文档的特定页面上查找和替换文本的步骤。

  • 使用Document类使用其路径加载PDF文档。
  • 创建TextFragmentAbsorber类的实例,并将搜索短语提供给其构造函数。
  • 使用Document.Pages [1] .Accept(TextFragmentAbsorber)接受所需页面的文本吸收器。
  • 遍历找到的TextFragmentAbsorber.TextFragments集合,并替换每个片段中的文本。
  • 使用Document.Save(String)方法保存更新的PDF文档。

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

// Open document
Document pdfDocument = new Document("Document.pdf");

// Create TextAbsorber object to find all instances of the input search phrase
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Accept the absorber for desired
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Get the extracted text fragments
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Loop through the fragments
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Update text and other properties
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// Save resulting PDF document.
pdfDocument.Save("updated-document.pdf");

定义页面区域以查找和替换文本

还可以在PDF文档的页面特定区域中查找和替换文本。以下步骤显示了如何定义特定区域,然后替换其中的文本。

  • 使用Document类使用其路径加载PDF文档。
  • 创建TextFragmentAbsorber类的实例,并将搜索短语提供给其构造函数。
  • 使用Document.Pages [0] .Accept(TextFragmentAbsorber)接受所需页面的文本吸收器。
  • 使用Rectangle类定义页面区域。
  • 循环遍历TextFragmentAbsorber.TextFragments集合,并替换每个片段中的文本。
  • 使用Document.Save(String)方法保存更新的PDF文档。

下面的代码示例演示如何使用C#在PDF的特定页面区域中查找和替换文本。

// load PDF file
Document pdf = new Document("Document.pdf");

// instantiate TextFragment Absorber object
TextFragmentAbsorber TextFragmentAbsorberAddress = new TextFragmentAbsorber();

// search text within page bound
TextFragmentAbsorberAddress.TextSearchOptions.LimitToPageBounds = true;

// specify the page region for TextSearch Options
TextFragmentAbsorberAddress.TextSearchOptions.Rectangle = new Rectangle(100, 100, 200, 200);

// search text from first page of PDF file
pdf.Pages[1].Accept(TextFragmentAbsorberAddress);

// iterate through individual TextFragment
foreach (TextFragment tf in TextFragmentAbsorberAddress.TextFragments)
{
    // update text to blank characters
    tf.Text = "";
}

// save updated PDF file after text replace
pdf.Save("output.pdf");

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

也可以使用正则表达式来查找和替换与特定模式匹配的文本。为此,您只需要提供一个正则表达式即可代替普通搜索短语并使用TextSearchOptions。以下是执行此操作的步骤。

  • 使用Document类使用其路径加载PDF文档。
  • 创建TextFragmentAbsorber类的实例,并将搜索短语提供给其构造函数。
  • 创建TextSearchOptions类的实例,然后将true传递给其构造函数以启用基于正则表达式的搜索。
  • 分配TextSearchOptions对象TextFragmentAbsorber.TextSearchOptions财产。
  • 使用Document.Pages [0] .Accept(TextFragmentAbsorber)接受所需页面的文本吸收器。
  • 使用Rectangle类定义页面区域。
  • 循环遍历TextFragmentAbsorber.TextFragments集合,并替换每个片段中的文本。
  • 使用Document.Save(String)方法保存更新的PDF文档。

下面的代码示例演示如何使用C#使用正则表达式查找和替换PDF中的文本。

// Open document
Document pdfDocument = new Document("Document.pdf");

// Create TextAbsorber object to find all the phrases matching the regular expression
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Like 1999-2000

// Set text search option to specify regular expression usage
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

// Accept the absorber for a single page
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Get the extracted text fragments
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Loop through the fragments
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Update text and other properties
    textFragment.Text = "New Phrase";
    // Set to an instance of an object.
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// Save PDF
pdfDocument.Save("output.pdf");

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

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP