Вставка изображений в слайд PowerPoint с помощью Python (win32com.client) - PullRequest
3 голосов
/ 02 сентября 2011

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

Я поигрался с API-интерфейсом win32com activepython и выяснил, как открыть файл и создать пустое поле.slide.

Мой вопрос: как мне вставить изображение и изменить его размер до нужного мне размера (изображения будут единственными на каждой странице).Также я пытаюсь использовать тему моей компании для фона и титульного листа, но это не так важно, как получение изображений на странице и изменение их размера.

любая помощь будет принята с благодарностью, спасибо!

Ответы [ 3 ]

2 голосов
/ 02 сентября 2011

вы должны использовать Shapes.AddPicture, как описано здесь http://www.gossamer -threads.com / lists / python / python / 754236

2 голосов
/ 02 сентября 2011

Я получил это со страницы, на которую ссылался Ксавье:

Pict1 = Slide1.Shapes.AddPicture(FileName=pictName, LinkToFile=False, SaveWithDocument=True, Left=100, Top=100, Width=200, Height=200)

Это будет работать, если ваши оригинальные изображения квадратные; в противном случае это будет искажать их.

Лучше указать -1 для ширины и высоты. Затем PPT вставит их в их «естественном» размере (какой бы PPT мог решить, что ... это не важно для нынешних целей). Затем вы можете прочитать размер фигуры, чтобы определить ее соотношение сторон, и убедиться, что она остается постоянной, если вы измените размер или вы можете установить для свойства .LockAspectRatio фигуры значение true и отрегулировать либо высоту, либо ширину, а другая будет автоматически настраиваться для сохранения аспекта соотношение.

1 голос
/ 02 сентября 2011

Во-первых, я бы сначала изменил их размер перед вставкой, используя библиотеку изображений Python PIL.В общем, копаться в любой офисной обработке изображений было одинаково ужасно для меня, поэтому я бы не рекомендовал это

Во-вторых, примеры объектной модели в vba, которые можно найти в справке PowerPoint или в Интернете, - обычно все, что вам нужно, чтобы пройти долгий путь.

из памяти вставить было довольно легко -

ppt.slide.ImageFromFile ("путь")

однако точное позиционирование я не помню, и я боюсь, что я неЗдесь нет ppt, чтобы попробовать.Если я получу успех позже, я опубликую некоторые ссылки

Удачи с документами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...