作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个设置了书签的 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/
我是一名优秀的程序员,十分优秀!