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, если вы добавляете изображение к слайду, который содержит пустой заполнитель "Изображение" или "Содержимое", изображение добавляется в заполнитель, а не помещается в качестве новой формы.
При наличии двух заполнителей на слайде первое добавленное изображение будет отображаться в первом заполнителе, а второе - во втором заполнителе, поэтому порядок добавления изображений будет иметь значение.
Попробуйте тот же код на слайде без заполнителей; замените прямоугольники вместо, если вам нужны формы, чтобы определить расположение изображения.
Или, если вам нужно сохранить заполнители, временно добавьте "фиктивный" текст в любые пустые заполнители содержимого перед добавлением изображений, а затем удалите фиктивный текст.