如何获得位置& Powerpoint中的形状尺寸?

时间:2012-11-29 17:29:52

标签: powerpoint openxml openxml-sdk

我正在玩OpenXmlSDK,看看它是否是我们Powerpoint需求的可行解决方案。需要做的一件事是能够在Powerpoint中定位形状。我一直在寻找一种方法来获得一个Shape的位置,但只有MSDN" How To" http://msdn.microsoft.com/en-us/library/cc850828.aspx和一个Position类(但无法从Shape中获取)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?

3 个答案:

答案 0 :(得分:3)

您有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

答案 1 :(得分:1)

浏览相关幻灯片的XML并查找xfrm元素,其中应包含off(offset)和ext(extent)子元素。测量结果在动车组中(参见Wouter van Vugt的文件最后一页)。

答案 2 :(得分:0)

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

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

之后,您可以使用Transform2D并按照Deunz的描述查找坐标。