如何解析出pdf中所有的自然段落及矩形框坐标

如何解析出pdf中所有的自然段落及段落矩形框的坐标

1 Like

@SunHao158

要解析PDF中的所有自然段落及其矩形框坐标,您可以使用Aspose.PDF for Java中的ParagraphAbsorber类。该类能够搜索文档中的段落,并提供每个段落的矩形框信息。

以下是一个示例代码,展示如何使用ParagraphAbsorber来提取段落及其坐标:

import com.aspose.pdf.*;

public class ExtractParagraphs {
    public static void main(String[] args) {
        // 打开PDF文档
        Document doc = new Document("input.pdf");
        
        // 创建ParagraphAbsorber对象
        ParagraphAbsorber absorber = new ParagraphAbsorber();
        
        // 访问文档的第一页
        absorber.visit(doc.getPages().get_Item(1));
        
        // 获取页面标记对象
        PageMarkup markup = absorber.getPageMarkups().get(0);
        
        // 遍历页面的段落
        for (MarkupSection section : markup.getSections()) {
            for (MarkupParagraph paragraph : section.getParagraphs()) {
                // 获取段落的第一个文本片段
                TextFragment fragment = paragraph.getFragments().get_Item(0);
                
                // 获取段落的矩形框
                Rectangle rect = paragraph.getRectangle();
                
                // 输出段落文本和矩形框坐标
                System.out.println("段落文本: " + fragment.getText());
                System.out.println("矩形框坐标: " + rect);
            }
        }
        
        // 保存文档(如果需要)
        doc.save("output.pdf");
    }
}

在这个示例中,我们首先打开一个PDF文档,然后使用ParagraphAbsorber来访问第一页的段落。通过遍历每个段落,我们可以获取其文本内容和矩形框的坐标信息。

请确保在使用此代码之前,您已经将Aspose.PDF库添加到您的项目中。

如果您需要更多关于ParagraphAbsorber的详细信息,可以参考Aspose的官方文档。

Sources:
[1]: ParagraphAbsorber | Aspose.PDF for Java API Reference

为什么我的MarkupParagraph中没有getRectangle方法

@SunHao158

API 中没有 MarkupParagraph 的此类方法。您能否分享您的示例 PDF 并详细解释一下为什么要确定整个段落的矩形或位置?