2010-03-30 5 views
1

도움이 필요합니다. DocumentFormat.OpenXml.Office.Drawing.Drawing() 다음은이wordML에 이미지를 삽입하는 동안 오류가 발생했습니다.

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

같은 생성자에서 XML을 건설 통과하면서

내가 전달되는 XML을이 오류

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

입니다 무엇입니까

<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에서 작성중인 요소가 도면 네임 스페이스 내에 있습니다. 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 도구를 사용하여 어떤 노드에서 유효한지 확인하십시오. 행운을 빌어 요!