Open XML SDK:替换内容被单词2007忽略

本文关键字:单词 2007 忽略 XML SDK 替换 Open | 更新日期: 2023-09-27 18:27:48

我正在使用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格式有效,当使用单词2010打开文档时,文本框可见,但使用单词2007打开文档时文本框为空。

如何添加可以同时使用单词2010和2007打开的备用内容。

谨致问候。


是的,你是对的,Taterhead,我正在做的是在文本框中添加一个内容控件,该内容控件包含一个altchunk(从外部docx导入内容),经过调查,我发现我正在将内容控件元素(sdtBlock)添加到绘图部分(word2010中使用的)的textBox元素中,但我没有将内容控件添加到word2007中使用的图片部分,这就是为什么我得到了一个空的内容控件。因此,我需要将内容控件(包含altchunk)添加到绘图和图片中的文本框中,我尝试克隆SdtBlock元素

textBoxContentForPict.Append(sdtBlock.CloneNode(true));

altchunk元素在克隆的sdtBlock中丢失的问题。如果你能帮我找到一个技巧,将SdtBlock添加到textBoxContentForDrawing.Append(sdtBlockWithAltchunck)和textBoxContentForPicture.Append(SdtBlock WithAltchunc)中的两个文本框中,这样我就可以在word2007和2010中获得正确的内容。

问候

Reagards

Open XML SDK:替换内容被单词2007忽略

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

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