gpt4 book ai didi

c# - Open XML Power Tools 识别段落索引

转载 作者:太空宇宙 更新时间:2023-11-03 15:16:50 27 4
gpt4 key购买 nike

我在将复杂文档与特定位置的标题合并时遇到问题。

举个例子:

var letterhead = @"C:\Users\dheale\Desktop\Word Docs\TESTING\StandardLetterhead.DOCX";
var blackrule = @"C:\Users\dheale\Desktop\Word Docs\TESTING\NJBlackrule.DOCX";
var asb = @"C:\Users\dheale\Desktop\Word Docs\TESTING\asb.DOCX";
var outDoc = @"C:\Users\dheale\Desktop\Word Docs\TESTING\out.DOCX";

var sources = new List<Source>
{
new Source(new WmlDocument(asb), 0, 80, false),
new Source(new WmlDocument(letterhead), true),
new Source(new WmlDocument(asb), 80,120, false),
new Source(new WmlDocument(blackrule), true),
new Source(new WmlDocument(asb), 200, false),
new Source(new WmlDocument(letterhead), true)
};

var doc = DocumentBuilder.BuildDocument(sources);

我的问题是试图找出段落索引是什么。原始文档具有用于标识应放置模板的位置的标签。

目前为了获取 ID,我正在执行以下操作:

var ParagraphIndex = wordDoc.MainDocumentPart.Document.Body.ChildElements
.Where(w => w.XmlQualifiedName.Name == "p").ToList()
.FindIndex(f => f.InnerXml.Contains(templateTag));

但是,文档越长,这个索引越多。

有没有更好更准确的获取段落索引的方法?

最佳答案

为什么不获取带标签的 Paragraph,然后在其后插入您的内容?

var searchedParagraph = wordDoc.MainDocumentPart.Document.Body.ChildElements
.Where(w => w.XmlQualifiedName.Name == "p")
.FirstOrDefault(f => f.InnerXml.Contains(templateTag));
if (searchedParagraph != null) {
OpenXmlElement parent = searchedParagraph.Parent;
//Add Code here to create your paragraphWithContent
....
//End paragraphWithContent

parent.InsertAfter(paragraphWithContent, searchedParagraph);
}

像这样。

关于c# - Open XML Power Tools 识别段落索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38771550/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com