将图片添加到幻灯片会根据幻灯片模板将它们放在不同的位置

时间:2014-09-18 11:11:50

标签: c# powerpoint office-interop

我在幻灯片中添加图片的代码如下:

        PowerPoint.Application ppApp = Globals.ThisAddIn.Application;
        PowerPoint.SlideRange ppSR = ppApp.ActiveWindow.Selection.SlideRange;
        PowerPoint.Shape shape = ppSR.Shapes.AddPicture(
            fileName, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue,
            l, t,
            graphicSize,
            graphicSize);

其中filename是我的图像,l,t和图形大小都是相同值的浮点数。

float graphicSize = 50;

float l = 915;

float t = 495;

此代码根据下面显示的幻灯片模板将图像放入不同的位置:

标题幻灯片 - 我希望它显示的方式 enter image description here

标题和内容幻灯片 enter image description here

两个内容 enter image description here

我还必须补充一点,如果选择了多个幻灯片,此方法当前会抛出错误。我不知道是否有更好的方法只添加到当前幻灯片,或者如果选择了多于1,则添加到所有..它返回的错误是COM错误,没有给出反馈

1 个答案:

答案 0 :(得分:1)

放置问题是因为PowerPoint会自动将插入的图像放入任何可以包含图像(内容或图片占位符)的占位符中。要使图片转到您想要的位置,您需要在插入图片之前删除占位符或将虚拟内容放入其中,插入图片,然后删除虚拟内容。

对于错误,您一次只能将形状添加到单个幻灯片中。如果您想使用一系列幻灯片,您可以一次性浏览选择,一张幻灯片。在VBA中,它类似于:

Dim oSl as Slide
For Each oSl in ActiveWindow.Selection.ShapeRange.Slides
   ' Do your stuff
Next