ParagraphAbsorber

ParagraphAbsorber class

表示页面结构对象(例如部分和段落)的吸收器对象。 执行对文本部分和段落的搜索,并提供对在文本坐标空间中描述它的矩形和多边形的访问。 还执行文本段搜索并通过以下方式提供对搜索结果的访问!:TextFragments按结构元素分组的集合。

public class ParagraphAbsorber

构造函数

姓名描述
ParagraphAbsorber()初始化ParagraphAbsorber执行搜索文档或页面的部分/段落。
ParagraphAbsorber(int)初始化ParagraphAbsorber执行搜索文档或页面的部分/段落。

特性

姓名描述
IsMulticolumnParagraphsAllowed { get; set; }获取或设置值,该值指示下一节的起始文本行是否可以视为上一节最后一段的延续。
PageMarkups { get; }获取集合PageMarkup被吸收了。
SectionsSearchDepth { get; set; }获取或设置值,该值指示将执行多少次顺序搜索更精细的结构元素。 默认搜索深度为 3。 这意味着对水平划分的部分(标题、段落等)进行三次搜索,对垂直划分进行三次搜索那些(列).

方法

姓名描述
Visit(Document)搜索指定的节和段落Document.
Visit(Page)对指定的执行搜索Page.

评论

搜索完成后PageMarkups集合将包含PageMarkup通过集合表示页面结构的对象MarkupSectionMarkupParagraph. 的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"));

也可以看看