Поиск текста и выделите его - PullRequest
0 голосов
/ 07 октября 2018

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