为了账号安全,请及时绑定邮箱和手机立即绑定

提取带标签的 PDF 中的阅读顺序序列

提取带标签的 PDF 中的阅读顺序序列

慕勒3428872 2023-10-12 15:00:48
我目前正在验证带标签的 PDF 文件中内容的正确顺序。有没有办法以编程方式提取带标签的 PDF 文件的阅读顺序号?我尝试将带标签的 PDF 转换为 XML,但我无法弄清楚哪些标签属于特定文本。我尝试过以下库:同步融合文本7但我找不到任何获取其阅读顺序号的方法。真的可能吗?提前致谢!
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

您可以使用PdfPig (.NET) 库提取标记 pdf 的标记内容树。我的理解是阅读顺序是由标记内容标识符(MCID)指示的。

如果标记的内容元素不包含 MCID(如分页元素),则 MCID 将设置为 -1。

每个MarkedContentElement都包含属于它的字母、图像和路径:

      using UglyToad.PdfPig;

        [...]


        using (PdfDocument document = PdfDocument.Open(pathToFile))

        {

            for (int p = 0; p < document.NumberOfPages; p++)

            {

                var page = document.GetPage(p + 1);


                // extract the page's marked content

                var markedContents = page.GetMarkedContents(); 


                var orderedMarkedContents = markedContents

                       .OrderBy(mc => mc.MarkedContentIdentifier);


                foreach (var mc in orderedMarkedContents)

                {

                    // do something

                }

            }

        }

如果你想将结果提取到 XML,你可以看看这个PageXmlTextExporter类。请查看wikiITextExporter以获取有关和的更多信息IReadingOrderDetector。


注意:我是这个库的积极贡献者。


查看完整回答
反对 回复 2023-10-12
  • 1 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信