我正在尝试使用OpenXML SDK创建内容控件,以便其他程序可以提取文档并根据需要对其进行编辑。
我设法成功创建了文本内容控件,但是事实证明,图片内容控件更具挑战性。
与我最接近的是以下代码:
var sdtCBlock = new SdtContentBlock(new Paragraph(new Run()));
var sdtPr = new SdtProperties(
new SdtAlias {Val = "" },
new Tag {Val = ""},
new SdtContentPicture(),
new DataBinding {XPath = ""}
);
wordDoc.MainDocumentPart.Document.Body.AppendChild(new SdtCell(sdtPr, sdtCBlock));
这将创建一个空的内容控件,单词会将其识别为图片:
空图片内容控件
问题是第二个程序不会按原样将图片插入此内容控件。但是,如果我们手动打开word文件并单击内容控件以弹出蓝色方形模板,则第二个程序将成功检测并更改内容控件中的图像。
手动单击后具有蓝色方形模板的内容控件
我做错什么了吗?以及如何使用OpenXml代码生成带有模板的占位符,以便被第二个程序拾取?