2010-03-30 33 views
1

需要幫助。嘗試將圖像插入wordML時出錯

,同時將構建XML中DocumentFormat.OpenXml.Office.Drawing.Drawing()構造這樣

DocumentFormat.OpenXml.Office.Drawing.Drawing d = new DocumentFormat.OpenXml.Office.Drawing.Drawing(img); 

在這裏,我得到這個錯誤

{"The xml has invalid content and cannot be constructed as an element.\r\nParameter name: outerXml"} 

是,它傳遞XML在

<w:drawing xmlns:w="http://schemas.openxmlformats.org/drawingml/2006/main"> 
       <wp:anchor distT="0" distB="0" distL="114300" distR="114300" simplePos="0" relativeHeight="251658240" behindDoc="0" locked="0" layoutInCell="1" allowOverlap="1" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"> 
        <wp:simplePos x="0" y="0"/> 
        <wp:positionH relativeFrom="column"> 
        <wp:align>right</wp:align> 
        </wp:positionH> 
        <wp:positionV relativeFrom="paragraph"> 
        <wp:align>top</wp:align> 
        </wp:positionV> 
        <wp:extent cx="400" cy="400"/> 
        <wp:effectExtent l="19050" t="0" r="0" b="0"/> 
        <wp:wrapSquare wrapText="bothSides"/> 
        <wp:docPr id="1" name="image"/> 
        <wp:cNvGraphicFramePr> 
        <a:graphicFrameLocks noChangeAspect="1" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"/> 
        </wp:cNvGraphicFramePr> 
        <a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"> 
        <a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture"> 
         <pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture"> 
         <pic:nvPicPr> 
          <pic:cNvPr id="0" name="image"/> 
          <pic:cNvPicPr> 
          <a:picLocks noChangeAspect="1" noChangeArrowheads="1"/> 
          </pic:cNvPicPr> 
         </pic:nvPicPr> 
         <pic:blipFill> 
          <a:blip r:embed="rIdImg4" cstate="print" xmlns:r="http://schemas.openxmlformats.org/drawingml/2006/relationships"/> 
          <a:stretch> 
          <a:fillRect/> 
          </a:stretch> 
         </pic:blipFill> 
         <pic:spPr bwMode="auto"> 
          <a:xfrm> 
          <a:off x="0" y="0"/> 
          <a:ext cx="400" cy="400"/> 
          </a:xfrm> 
          <a:prstGeom prst="rect"> 
          <a:avLst/> 
          </a:prstGeom> 
          <a:noFill/> 
          <a:ln w="9525"> 
          <a:noFill/> 
          <a:miter lim="800000"/> 
          <a:headEnd/> 
          <a:tailEnd/> 
          </a:ln> 
         </pic:spPr> 
         </pic:pic> 
        </a:graphicData> 
        </a:graphic> 
       </wp:anchor> 
       </w:drawing> 

感謝, Kiru

回答

2

您從XML創建的元素位於「圖形」命名空間中。 (通常使用「a:」作爲前綴)。從OuterXml字符串創建這些元素時,根節點必須與正在創建的對象的類型相對應。 (在這種情況下是DocumentFormat.OpenXml.Office.Drawing.Drawing)。這裏的問題是XML根節點是針對不同的元素。

嘗試創建DocumentFormat.OpenXml.WordProcessing.Drawing()對象: http://msdn.microsoft.com/en-us/library/documentformat.openxml.wordprocessing.drawing.aspx

可能難以找到在該注入drawingML正確的水平。走出OpenXmlSDK工具來查看哪些節點有效。祝你好運!

相關問題