using Microsoft.Office.Interop.Word; using System.Collections.Generic; using UtilLib; namespace AIProofread.Model { public class ExportDataItem { public int PageNumber { get; set; } public int LineNumber { get; set; } public string OriginSentence { get; set; } public CorrectItem Item { get; set; } public ExportDataItem(CorrectItem item, int pageNumber, int lineNumber,string originSentence = "") { Item = item; PageNumber = pageNumber; LineNumber = lineNumber; OriginSentence = originSentence; } public static List GetExportData(Dictionary marks) { List list = new List(); foreach (var item in marks) { if (item.Value.mark == null) continue; var it = item.Value.content; var range = item.Value.mark.Range; // 获取书签在文档的页码数 var pageNumber = range.get_Information(WdInformation.wdActiveEndPageNumber); // 获取书签在当前页面的行数 var lineNumber = range.get_Information(WdInformation.wdFirstCharacterLineNumber); list.Add(new ExportDataItem(it, pageNumber, lineNumber,item.Value.OriginSentence)); } // 根据页码和行数排序 list.Sort((x, y) => { if (x.PageNumber == y.PageNumber) { if(x.LineNumber == y.LineNumber) { // 如果行数相同,则根据起始位置排序 return x.Item.Id.CompareTo(y.Item.Id); } // 如果页码相同,则根据行数排序 return x.LineNumber.CompareTo(y.LineNumber); } return x.PageNumber.CompareTo(y.PageNumber); }); return list; } } }