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。
注意:我是这个库的积极贡献者。
添加回答
举报