【发布时间】:2017-08-20 19:34:42
【问题描述】:
我正在使用 OpenXML API 修改 docx 模板并遇到问题。
我需要将图像插入到某个位置 - 该位置由 Content Controll 元素定义,该元素可以位于文档的主要部分、页脚的页眉中。
我得到这样的内容控制:
static IEnumerable<TElement> GetDecendants<TElement>(OpenXmlPart part) where TElement : OpenXmlElement
{
var result = part.RootElement
.Descendants()
.OfType<TElement>();
return result;
}
稍后我需要通过这个将图像插入到文档的正确部分
internal static OpenXmlElement InsertImage(OpenXmlPart documentPart, Stream stream, string fileName, int imageWidth, int imageHeight)
{
// actual implementation that is tested and works
}
现在我的问题是,当我发现需要用图像替换的 ContentControl 元素时,我没有对 documentPart 的引用 - 我只有 SdtRun 或 SdtBlock 的引用。
有没有办法从SdtRun 导航到documentPart?我检查了.Parent,但找不到从OpenXmlElement 到OpenXmlPart 的方法——它们位于不同的层次结构中。
【问题讨论】:
标签: c# ms-word openxml openxml-sdk