Open XML SDK: альтернативное содержимое игнорируется в Word 2007 - PullRequest
0 голосов
/ 15 марта 2012

Я генерирую документ Word с использованием Open XML SDK, документ содержит 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 (для импорта содержимого из внешнего документа),после исследования я обнаружил, что я добавляю элемент управления контентом (sdtBlock) к элементу textBox в разделе рисования (который используется в word2010), но мне не хватает добавить элемент управления контентом в раздел рисунков, который используется в Word 2007, ивот почему я получаю пустой контроль контента.Поэтому мне нужно добавить элемент управления содержимым (содержащий altchunk) в textBoxs как на чертеже, так и на рисунке. Я пытаюсь клонировать элемент SdtBlock,

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

, проблема в том, что элемент altchunk теряется в клонированномsdtBlock.Если вы можете помочь мне найти хитрость, чтобы добавить SdtBlock к 2 textBoxs в textBoxContentForDrawing.Append (sdtBlockWithAltchunck) и textBoxContentForPicture.Append (sdtBlockWithAltchunck), таким образом, я могу получить правильное содержимое в word200 2010.

С уважением

Reagards

Ответы [ 2 ]

1 голос
/ 21 марта 2012

Проблема решена, необходимо добавить altchunk перед клонированием блока SdtBlock

1 голос
/ 16 марта 2012

Возможно, ваш //pict for word 2007 неверен. Поместите его в слово для блока рисования 2010 года и посмотрите, будет ли он отображаться в 2010 году. Или поместите его вне альтернативного блока контента и убедитесь, что он визуализируется в 2007 году.

...