首页 > 解决方案 > 搜索文本并突出显示

问题描述

我的代码是 C# 我正在使用 Aspose 搜索文本并在 pdf 中突出显示它。它正在工作,但花费的时间非常巨大。示例:我的文档有 25 页,它有 25 个搜索文本实例,每页有 1 个搜索文本。需要2分钟,这是不可接受的。

我有3个问题:

  1. 有没有办法减少这段时间?
  2. 目前这种方法适用于pdf,就我而言,我有所有类型的文档(xls、pdf、ppt、doc)?有什么方法可以在所有文档中执行此搜索和突出显示?
  3. 除了 aspose 之外,还有其他更好的方法吗?

// open document
Document document = new Document(@"C:\TestArea\Destination\SUP000011\ATM-1B4L2KQ0ZE0-0001\OpenAML.pdf");

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

//accept the absorber for all the pages
for (int i = 1; i <= document.Pages.Count; i++)
{
    document.Pages[i].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.TextState.Invisible = false;

        //textFragment.Text = "TEXT";
        textFragment.TextState.Font = FontRepository.FindFont("Verdana");
        textFragment.TextState.FontSize = 9;
        textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
        textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Yellow);
        //textFragment.TextState.Underline = true;
    }
}

// Save resulting PDF document.
document.Save(@"C:\TestArea\Destination\SUP000011\ATM-1B4L2KQ0ZE0-0001\Highlightdoc.pdf");

标签: c#aspose.pdf

解决方案


推荐阅读