2014-10-08 1 views
2

Я пытаюсь развернуть фигуру в слайде PowerPoint, чтобы получить значения заполнителя формы. Форма на shapetree выглядит следующим образом:Получение значений заполнителя с помощью Open XML SDK 2.0

<p:sp> 
    <p:nvSpPr> 
     <p:cNvPr id="10" name="Text Placeholder 2"/> 
     <p:cNvSpPr> 
      <a:spLocks noGrp="1"/> 
     </p:cNvSpPr> 
     <p:nvPr> 
      <p:ph type="body" sz="quarter" idx="13" hasCustomPrompt="1"/> 
     </p:nvPr> 
    </p:nvSpPr> 
    <p:spPr> 
     <a:xfrm> 
      <a:off x="457200" y="3276601"/> 
      <a:ext cx="8229600" cy="838199"/> 
     </a:xfrm> 
     <a:prstGeom prst="rect"> 
      <a:avLst/> 
     </a:prstGeom> 
    </p:spPr> 
    <p:txBody> 
     <a:bodyPr lIns="91421" tIns="45710" rIns="91421" bIns="45710"/> 
     <a:lstStyle> 
      <a:lvl1pPr marL="0" indent="0" algn="ctr"> 
       <a:buFontTx/> 
       <a:buNone/> 
       <a:defRPr sz="2400" b="1" baseline="0"> 
        <a:solidFill> 
         <a:schemeClr val="tx1"/> 
        </a:solidFill> 
        <a:latin typeface="+mj-lt"/> 
        <a:cs typeface="Arial" pitchFamily="34" charset="0"/> 
       </a:defRPr> 
      </a:lvl1pPr> 
     </a:lstStyle> 
     <a:p> 
      <a:pPr lvl="0"/> 
      <a:r> 
       <a:rPr lang="en-US" dirty="0" smtClean="0"/> 
       <a:t>Click to enter course title</a:t> 
      </a:r> 
     </a:p> 
    </p:txBody> 
</p:sp> 

часть я заинтересован в том, чтобы выглядеть следующим образом:

<p:nvPr> 
    <p:ph type="body" sz="quarter" idx="13" hasCustomPrompt="1"/> 
</p:nvPr> 

Я пытаюсь получить значение idx (13, в этом случае).

Оператор Я использую выглядит так, до сих пор (я говорю «до сих пор», потому что я не знаю, как закончить заявление):

var index = shape.NonVisualShapeProperties.NonVisualShapeDrawingProperties. <-??? 

На данный момент в код, у меня есть форма, которую я хочу, я просто не могу понять, как получить значения placeholder с помощью Open Office SDK. Думаю, я мог бы просто рассматривать его как простой старый XML и получить его по имени элемента, но я решил, что для OOXML SDK будет встроен некоторый метод.

ответ

3

Наконец понял, как это сделать:

index = int.Parse(shape.NonVisualShapeProperties.ApplicationNonVisualDrawingProperties.PlaceholderShape.Index);

Я использовал NonVisualShapeDrawingProperties, когда я использую ApplicationNonVisualDrawingProperties.