尝试将图像插入到 wordML 时出错
需要帮助。
遇到此错误,
{"The xml has invalid content and cannot be constructed as an element.\r\nParameter name: outerXml"}
我在将构造的 xml 传递到 DocumentFormat.OpenXml.Office.Drawing.Drawing() 构造函数时
DocumentFormat.OpenXml.Office.Drawing.Drawing d = new DocumentFormat.OpenXml.Office.Drawing.Drawing(img);
如下所示这是传入的 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>
谢谢, 基鲁
Help needed.
I am getting this error
{"The xml has invalid content and cannot be constructed as an element.\r\nParameter name: outerXml"}
while passing constructed xml in to DocumentFormat.OpenXml.Office.Drawing.Drawing() constructor like this
DocumentFormat.OpenXml.Office.Drawing.Drawing d = new DocumentFormat.OpenXml.Office.Drawing.Drawing(img);
Here is the xml which is passed in
<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>
Thanks,
Kiru
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您从 XML 创建的元素位于 Drawing 命名空间内。 (通常使用“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 工具查看哪些节点下有效。祝你好运!
The element you are creating from the XML is within the Drawing namespace. (Often seen using the "a:" prefix.) When creating these elements from OuterXml strings the root node must correspond with the type of the object being created. (In this case a DocumentFormat.OpenXml.Office.Drawing.Drawing). The problem here is that the XML root node is for a different element.
Try creating a DocumentFormat.OpenXml.WordProcessing.Drawing() object:
http://msdn.microsoft.com/en-us/library/documentformat.openxml.wordprocessing.drawing.aspx
It can be difficult finding the right level at which to inject the drawingML. Get out the OpenXmlSDK tool to see what is valid under which nodes. Best of luck!