Open XML SDK:使用word 2007忽略备用内容

时间:2012-03-15 09:09:37

标签: c# openxml openxml-sdk word-2007 word-2010

我使用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

2 个答案:

答案 0 :(得分:1)

也许您的//pict for word 2007不正确。将它放在2010年绘图块的单词中,看看它是否在2010年呈现。或者将它放在备用内容块之外,并确保它在2007年呈现。

答案 1 :(得分:1)

问题解决了,必须在克隆SdtBlock之前添加altchunk