Мой код на 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");