导出具有实际大小的PowerPoint形状

时间:2012-12-28 01:43:39

标签: c# vsto powerpoint

我需要将PowerPoint中选择的形状导出为具有真实形状大小的png图像。我使用此代码进行导出:

var args = new object[] { filePath, Microsoft.Office.Interop.PowerPoint.PpShapeFormat.ppShapeFormatPNG, 0, 0, Microsoft.Office.Interop.PowerPoint.PpExportMode.ppRelativeToSlide };
objectShape.GetType().InvokeMember("Export", System.Reflection.BindingFlags.InvokeMethod, null, objectShape, args); // Export to file on disk

在磁盘上我的图像比例和高度/宽度不正确。我尝试了不同的PpExportMode枚举参数值,以防我将PP中的缩放更改为100%。但我没有正确的结果。对于基于矩形的形状,它可以正常工作。但是例如对于星形或标注形状,实际尺寸不等于形状高度/宽度属性。这是因为形状底部的舌头很小。

enter image description here

有人知道如何正确导出这些形状吗?

1 个答案:

答案 0 :(得分:1)

检查形状的.Adjustments.Count属性。

If Adjustments.Count > 0 Then
For x = 1 to Adjustments.Count
  '  Store the value of Adjustments(x) somewhere
  '  so you can reset it later
  .Adjustments(x) = 0
Next

现在导出形状,然后将其调整重置为先前的值。

或者只是复制形状,将其调整设置为0,导出它,然后将其删除。