5

我正在使用 OpenXmlSDK,看看它是否是满足我们的 Powerpoint 需求的可行解决方案。需要的一件事是能够在 Powerpoint 中定位形状。我一直在寻找一种获取形状位置的方法,但只遇到过 MSDN“如何” http://msdn.microsoft.com/en-us/library/cc850828.aspx和一个位置类(但无法从形状中获取)http://msdn.microsoft.com/en-us/library/office/documentformat.openxml.wordprocessing.position%28v=office.14%29.aspx

我该怎么做:

PresentationDocument presentationDocument =  PresentationDocument.Open("C:\\MyDoc.pptx", true);
IdPartPair pp = presentationDocument.PresentationPart.SlideParts.First().Parts.FirstOrDefault();
var shape = pp.OpenXmlPart;
// How do I get the position and dimensions?
4

3 回答 3

5

您有 2 个用于形状尺寸的变量: - 偏移量给出了形状顶角的位置 - 范围给出了形状的大小

shape.ShapeProperties.Transform2D.Offset.X //gives the x position of top left corner
shape.ShapeProperties.Transform2D.Offset.Y //gives the y position of top left corner

shape.ShapeProperties.Transform2D.Extents.X //gives the x size of the shape : the width
shape.ShapeProperties.Transform2D.Extents.Y //gives the y size of the shape : the height
于 2013-05-21T09:23:42.917 回答
1

浏览相关幻灯片的 XML 并查找应包含 off(偏移)和 ext(范围)子元素的 xfrm 元素。测量值以 EMU 为单位(参见 Wouter van Vugt 文档的最后一页)。

于 2012-12-03T21:07:51.250 回答
0

有时ShapeProperties不显示为Shape属性,您必须编写

var sP = ((DocumentFormat.OpenXml.Presentation.Shape)shape).ShapeProperties;

在您可以使用 Transform2D 并找到Deunz所写的坐标之后。

于 2020-08-03T21:07:39.033 回答