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

我目前正在验证带标签的 PDF 文件中内容的正确顺序。

有没有办法以编程方式提取带标签的 PDF 文件的阅读顺序号?

https://img1.sycdn.imooc.com/652799d100012c5102430432.jpg

我尝试将带标签的 PDF 转换为 XML,但我无法弄清楚哪些标签属于特定文本。

我尝试过以下库:

  • 同步融合

  • 文本7

但我找不到任何获取其阅读顺序号的方法。

真的可能吗?提前致谢!


慕勒3428872
浏览 71回答 1
1回答

慕斯王

您可以使用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。注意:我是这个库的积极贡献者。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java