Поиск текстовых координат с помощью bytecout PDFExtractor C# - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть PDF, который мне нужно найти и заменить текст. Я знаю, как создавать наложения и добавлять текст, но не могу определить, как найти текущие текстовые координаты. Это пример, который я нашел на сайте bytescout -

        // Create Bytescout.PDFExtractor.TextExtractor instance
        TextExtractor extractor = new TextExtractor();
        extractor.RegistrationName = "";
        extractor.RegistrationKey = "";

        /////find text
        // Load sample PDF document
        extractor.LoadDocumentFromFile(@"myPdf.pdf");

        int pageCount = extractor.GetPageCount();
        RectangleF location;

        for (int i = 0; i < pageCount; i++)
        {
            // Search each page for string
            if (extractor.Find(i, "OPTION 2", false, out location))
            {
                do
                {
                    Console.WriteLine("Found on page " + i + " at location " + location.ToString());

                }
                while (extractor.FindNext(out location));
            }
        }
        Console.WriteLine();
        Console.WriteLine("Press any key to continue...");
        Console.ReadLine();
    }
} 

, но он не работает, потому что нет метода Find с перегрузкой, который принимает 4 аргумента. Я не женат на использовании Bytescout для поиска текстовых координат в PDF, но у моей компании есть лицензия. Есть ли бесплатный способ найти текстовые координаты в PDF, если Bytescout не может выполнить sh того, что я пытаюсь сделать?

1 Ответ

1 голос
/ 03 апреля 2020

Попробуйте использовать:

extractor.Find(i, "OPTION 2", false).FoundText.Bounds

(источник: https://cdn.bytescout.com/help/BytescoutPDFExtractorSDK/html/M_Bytescout_PDFExtractor_TextExtractor_Find.htm)

Свойство FoundText реализует ISearchResult: https://cdn.bytescout.com/help/BytescoutPDFExtractorSDK/html/T_Bytescout_PDFExtractor_ISearchResult.htm

, который имеет эти свойства:

Publi c свойство Bounds: Ограничительный прямоугольник всех элементов результатов поиска. Используйте Elements или GetElement (Int32), чтобы получить границы отдельных элементов.

Publi c свойство ElementCount: Возвращает количество отдельных элементов результатов поиска.

Publi c свойство Elements: элементы результата поиска (отдельные текстовые объекты, включенные в результат поиска) Для COM / ActiveX используйте взамен GetElement (Int32).

Publi c свойство Height: Высота ограничивающего прямоугольника результата поиска. Используйте Elements или GetElement (Int32) для получения границ отдельных элементов.

Publi c свойство Left: Левая координата ограничивающего прямоугольника результата поиска. Используйте Elements или GetElement (Int32), чтобы получить границы отдельных элементов.

Publi c свойство PageIndex: Индекс страницы, содержащей результат поиска.

Publi c свойство Text: Текстовое представление результата поиска. Используйте Elements или GetElement (Int32) для получения отдельных элементов.

Publi c свойство Top: Верхняя координата ограничивающего прямоугольника результата поиска. Используйте Elements или GetElement (Int32), чтобы получить границы отдельных элементов.

Publi c свойство Width: Ширина ограничивающего прямоугольника результата поиска. Используйте Elements или GetElement (Int32), чтобы получить границы отдельных элементов.

...