-1

我必须自动创建一个PowerPoint演示文稿。

导致问题的母版幻灯片有 2 个图片框和一些文本字段。

我通过获取shape带有 id 的(准备好的图片框)并在位置shape.Left和添加图片来添加图片shape.Right

现在它变得很奇怪......当我这样做时,图片的位置正确。

var shape = slide.Shapes[ContentFields.Print.WithImage.Bild];
slide.Shapes.AddPicture(artikel.BildPath, MsoTriState.msoFalse, MsoTriState.msoCTrue, shape.Left, shape.Top, shape.Width, shape.Height);

shape = slide.Shapes[ContentFields.Print.WithImage.Kanal];
slide.Shapes.AddPicture(artikel.KanalIconPath, MsoTriState.msoFalse, MsoTriState.msoCTrue, shape.Left, shape.Top, shape.Width, shape.Height);

但是当我先添加 Kanal 时,图片就混淆了(Kanal 在 Bild 的位置,Bild 在 Kanal 的位置)。

var shape = slide.Shapes[ContentFields.Print.WithImage.Kanal];
slide.Shapes.AddPicture(artikel.KanalIconPath, MsoTriState.msoFalse, MsoTriState.msoCTrue, shape.Left, shape.Top, shape.Width, shape.Height);

shape = slide.Shapes[ContentFields.Print.WithImage.Bild];
slide.Shapes.AddPicture(artikel.BildPath, MsoTriState.msoFalse, MsoTriState.msoCTrue, shape.Left, shape.Top, shape.Width, shape.Height);

为什么是这样?
我用 ID 得到了正确的形状,为什么它们会混淆?:-S

提前致谢

4

1 回答 1

1

至少在某些版本的 PPT 中,如果您将图片添加到包含空图片或内容占位符的幻灯片,则图片将添加到占位符而不是作为新形状放置。

幻灯片上有两个占位符,添加的第一张图片将位于第一个占位符中,第二张将位于第二个占位符中,因此添加图片的顺序很重要。

在没有占位符的幻灯片上尝试相同的代码;如果您需要形状来确定图片位置,请替换矩形。

或者,如果您需要保留占位符,请在添加图片之前暂时将“虚拟”文本添加到任何空内容占位符,然后删除虚拟文本。

于 2018-03-02T18:12:28.907 回答