我使用Open XML SDK生成word文档,该文档包含textBox,textBox的生成元素采用以下形式:
<mc:AlternateContent>
<mc:Choice Requires="wps">
<w:drawing>
// Drawing for word 2010
</w:drawing>
</mc:Choice>
<mc:Fallback>
<w:pict>
// Pict for word 2007
</w:pict>
</mc:Fallback>
</mc:AlternateContent>
生成的文档对2007和2010格式有效,当使用word 2010打开文档时,textBox可见,但是使用word 2007打开文档时textBox为空。
如何添加可以使用word 2010和2007打开的备用内容。
问候。
是的你是对的Taterhead,我正在做的是在文本框中添加一个内容控件,内容控件包含一个altchunk(从外部docx导入内容),经过调查我发现我添加了内容控制元素(sdtBlock)到绘图部分中的textBox元素(在word2010中使用)但我错过了将内容控件添加到word 2007中使用的图片部分,这就是为什么我得到一个空的内容控件。所以我需要将内容控件(包含altchunk)添加到绘图和图片中的textBoxs,我尝试克隆SdtBlock元素,
textBoxContentForPict.Append(sdtBlock.CloneNode(true));
在克隆的sdtBlock中altchunk元素丢失的问题。如果你可以帮我找到一个技巧,将SdtBlock添加到textBoxContentForDrawing.Append(sdtBlockWithAltchunck)和textBoxContentForPicture.Append(sdtBlockWithAltchunck)中的2个文本框中,这样我就可以在2010年的word2007中获得正确的内容。
此致
Reagards
答案 0 :(得分:1)
也许您的//pict for word 2007
不正确。将它放在2010年绘图块的单词中,看看它是否在2010年呈现。或者将它放在备用内容块之外,并确保它在2007年呈现。
答案 1 :(得分:1)
问题解决了,必须在克隆SdtBlock之前添加altchunk