您可以使用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。注意:我是这个库的积极贡献者。