ParagraphAbsorber

ParagraphAbsorber class

Представляет объект-поглотитель объектов структуры страницы, таких как разделы и абзацы. Выполняет поиск разделов и абзацев текста и предоставляет доступ к прямоугольникам и многоугольникам, описывающим его в текстовом координатном пространстве. Также выполняет поиск текстовых сегментов и предоставляет доступ к результатам поиска через!:TextFragments коллекции, сгруппированные по элементам структуры.

public class ParagraphAbsorber

Конструкторы

ИмяОписание
ParagraphAbsorber()Инициализирует новый экземплярParagraphAbsorber который выполняет поиск разделов/абзацев документа или страницы.
ParagraphAbsorber(int)Инициализирует новый экземплярParagraphAbsorber который выполняет поиск разделов/абзацев документа или страницы.

Характеристики

ИмяОписание
IsMulticolumnParagraphsAllowed { get; set; }Получает или задает значение, указывающее, можно ли рассматривать начальные строки текста следующего раздела как продолжение последнего абзаца предыдущего раздела.
PageMarkups { get; }Получает коллекциюPageMarkup которые были поглощены.
SectionsSearchDepth { get; set; }Получает или задает значение, указывающее, сколько раз будет выполняться последовательный поиск более мелких элементов структуры. единицы (столбцы).

Методы

ИмяОписание
Visit(Document)Выполняет поиск разделов и абзацев на указанномDocument .
Visit(Page)Выполняет поиск по указанномуPage .

Примечания

После завершения поискаPageMarkups коллекция будет содержатьPageMarkup объекты, представляющие структуру страницы коллекциямиMarkupSection а такжеMarkupParagraph . TextFragment Объект предоставляет доступ к тексту вхождения поиска, свойствам текста, а также позволяет редактировать текст и изменять его состояние (шрифт, размер шрифта, цвет и т. д.).

Примеры

Пример демонстрирует, как найти первый сегмент текста каждого абзаца на первой странице документа PDF и выделить его.

// Открыть документ
Document doc = new Document("input.pdf");

// Создаем объект ParagraphAbsorber
ParagraphAbsorber absorber = new ParagraphAbsorber();

// Принять поглотитель для первой страницы
absorber.Visit(doc.Pages[1]);

// Получить объект разметки первой страницы
PageMarkup markup = absorber.PageMarkups[0];

// Перебираем элементы структуры текста страницы, чтобы найти первый текстовый фрагмент каждого абзаца
foreach (MarkupSection section in markup.Sections)
{
    foreach (MarkupParagraph paragraph in section.Paragraphs)
    {
        TextFragment fragment = paragraph.Fragments[0];
        // Обновить свойства текста
        fragment.TextState.BackgroundColor = Color.LightBlue;
    }
}

// Сохранить документ
doc.Save(GetOutputPath("output.pdf"));

Смотрите также