gpt4 book ai didi

c# - 遍历 OpenXml 中的 word 文档,将文本输入书签(丢失格式)

转载 作者:行者123 更新时间:2023-11-30 18:39:27 35 4
gpt4 key购买 nike

我有一个设置了书签的 word 文档。书签非常简单,不跨越表格或段落。以下代码有效,但我丢失了文档的格式并且插入使用了 word 的默认字体和大小等。我怎样才能将文本输入书签以保持文档格式?

using (var wordDoc = WordprocessingDocument.Open(targetFileName, true))
{
MainDocumentPart mainPart = wordDoc.MainDocumentPart;

var bookmarkStarts = mainPart.Document.Descendants<BookmarkStart>().ToList();

foreach (BookmarkStart bookmarkStart in bookmarkStarts)
{
InsertIntoBookmark(bookmarkStart, "Hello");
}
}

private static void InsertIntoBookmark(BookmarkStart bookmarkStart, string text)
{
OpenXmlElement elem = bookmarkStart.NextSibling();

while (elem != null && !(elem is BookmarkEnd))
{
OpenXmlElement nextElem = elem.NextSibling();
elem.Remove();
elem = nextElem;
}
Run run = new Run();
run.Append(new Text(text));
bookmarkStart.Parent.InsertAfter<Run>(run, bookmarkStart);
}

最佳答案

在您的情况下,不可能直接完成您想要达到的目标。书签不会保留任何格式信息,因此在复制时不会保留任何格式。

一个实际的解决方法是手动获取文档的默认格式,并尝试将其应用于要插入运行的段落。

除了使用书签,您还可以使用内容控件,这将在使用 OOXML 将文本插入 Word 文档时提供更多的灵 active 。

关于c# - 遍历 OpenXml 中的 word 文档,将文本输入书签(丢失格式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9740623/

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