Заместитель места

Площадка Aspose.Slides Ссылка на API FOSS Python

А. - Да . местоположение является зарезервированной областью на макете или мастер-слайде, которая определяет: по умолчанию положение, размер и форматирование для конкретного типа контента (заголовок, Если обычный слайд основан на Устройство, которое имеет фигуранты, соответствующие формы на слайде унаследуют те позиции и формат.

Пакет: aspose.slides_foss


Как работают “заместители” при реализации данного проекта?

Поместители представлены как обычные формы, XML которых несет в себе форму: <p:ph> элемент, указывающий тип и индекс заголовка. Shape класс читает: <p:ph> чтобы определить, является ли форма поместителем и ходит по layout → главная цепочка наследования для решения положения формы, когда нет локальной <a:xfrm> определяется.

Не существует самостоятельного . Placeholder файл класса в этом релизе; запятая идентификация носит базовый инструмент; AutoShape, Table, или другой формы.


Выявление форм-удерживателей

Форма на макете или слайде XML является фигурой, когда ее nvSpPr/nvPr (или блок эквивалентных невизуальных свойств) содержит <p:ph> элемент.

В связи с этим Shape базовый класс раскрывает внутренний помощник. _get_placeholder_info() в котором: возвращает a (ph_type, ph_idx) тупель или None для форм, не имеющих помещения.


Наследование макет и главный плацдарм

Когда у слайда нет собственной формы . <a:xfrm> элемент, рамки определяет положение и размер от соответствующего фиксатора в слайде планировки, а также затем с мастер-слайда, если укладка не определяет ни одного. Это наследование обрабатывается автоматически; клиентский код только получает доступ к shape.x, shape.y, shape.width, и shape.height.


PlaceholderType (заявленный в __all__)

Следующие типы прокладки объявлены в публичной поверхности API. Они отображают в отношении: type атрибут <p:ph> в OOXML:

Значение типаОписание:
bodyТело / площадь содержания
titleНазвание слайда
ctrTitleЗаголовок в центре
subTitleПодзаголовок:
dtДата и время
ftrПодставка
sldNumНомер слайда
picЗаместитель для изображения
objОбщий объект
chartГрафик
tblТаблица 1
clipArtКлип-арт
dgmДиаграмма
mediaОбъект медиа
headerHeader (notes pages) - Я не могу.

Примеры кода

Определите формы помещений на макете

import aspose.slides_foss as slides

with slides.Presentation("deck.pptx") as prs:
    layout = prs.layout_slides[0]
    print(f"Layout: {layout.name!r}")
    for shape in layout.shapes:
        # Access the internal placeholder info via the XML helper
        ph_info = shape._get_placeholder_info() if hasattr(shape, '_get_placeholder_info') else None
        if ph_info:
            ph_type, ph_idx = ph_info
            print(f"  Placeholder: type={ph_type!r}  idx={ph_idx}"
                  f"  at ({shape.x:.0f}, {shape.y:.0f})")
        else:
            print(f"  Regular shape: {shape.name!r}")

Добавить слайд и работать с его заголовком для названия .

import aspose.slides_foss as slides
from aspose.slides_foss import SlideLayoutType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    # Use the Title layout which has a title placeholder
    title_layout = prs.layout_slides.get_by_type(SlideLayoutType.TITLE)
    if title_layout is None:
        title_layout = prs.layout_slides[0]

    slide = prs.slides.add_empty_slide(title_layout)

    # The first shape on a TITLE layout is typically the title placeholder
    for shape in slide.shapes:
        if hasattr(shape, 'add_text_frame'):
            shape.add_text_frame("Quarterly Review")
            break

    prs.save("titled-slide.pptx", SaveFormat.PPTX)

Добавить текст ко всем формам на слайде (включая запятые)

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation("template.pptx") as prs:
    slide = prs.slides[0]
    for i, shape in enumerate(slide.shapes):
        if hasattr(shape, 'add_text_frame'):
            try:
                shape.add_text_frame(f"Content {i + 1}")
            except Exception:
                pass  # some shapes may not accept text
    prs.save("filled.pptx", SaveFormat.PPTX)

См. также:

 Русский