c# - 搜索文本并突出显示
问题描述
我的代码是 C# 我正在使用 Aspose 搜索文本并在 pdf 中突出显示它。它正在工作,但花费的时间非常巨大。示例:我的文档有 25 页,它有 25 个搜索文本实例,每页有 1 个搜索文本。需要2分钟,这是不可接受的。
我有3个问题:
- 有没有办法减少这段时间?
- 目前这种方法适用于pdf,就我而言,我有所有类型的文档(xls、pdf、ppt、doc)?有什么方法可以在所有文档中执行此搜索和突出显示?
- 除了 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");
解决方案
推荐阅读
- python - Tensorflow model.fit() 不适用于字符串作为标签
- verilog - 如何使用 X,Y 坐标复制对象
- html - css flex div高度问题-为什么空间很大?
- rxjs - 使用内部可观察谓词的管道过滤器
- javascript - 是否有无需按下按钮即可在页面加载时切换 div 的功能?
- javascript - 如何在边框半径内居中文本?
- javascript - 如何在谷歌地图中更改特定状态的颜色
- c# - IErrorInfo.GetDescription com E_FAIL(0x80004005) 导入 EXCEL 文件
- python - 使用 reed-solomon 编码器对图像进行编码
- mysql - 用于显示空值的 SQL