PowerPoint Interop порядок добавления изображения имеет значение?

Я должен автоматизировать создание презентации PowerPoint.

Мастер слайд, который вызывает проблемы, имеет 2 графических блока и несколько текстовых полей.

Я добавляю картинки, получая shape (готовая картинка-коробка) с идентификатором и добавлением картинки в позицию 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);

Но когда я сначала добавляю Канал, картинки смешиваются (Канал находится на позиции Билд, а Бильд на позиции Канал).

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);

Почему это?
Я получаю правильную форму с идентификатором, почему они перепутали?:-S

заранее спасибо

1 ответ

Решение

По крайней мере, в некоторых версиях PPT, если вы добавляете изображение к слайду, который содержит пустой заполнитель "Изображение" или "Содержимое", изображение добавляется в заполнитель, а не помещается в качестве новой формы.

При наличии двух заполнителей на слайде первое добавленное изображение будет отображаться в первом заполнителе, а второе - во втором заполнителе, поэтому порядок добавления изображений будет иметь значение.

Попробуйте тот же код на слайде без заполнителей; замените прямоугольники вместо, если вам нужны формы, чтобы определить расположение изображения.

Или, если вам нужно сохранить заполнители, временно добавьте "фиктивный" текст в любые пустые заполнители содержимого перед добавлением изображений, а затем удалите фиктивный текст.

Другие вопросы по тегам