Введение
Aspose.Slides FOSS for Python gives you full control over the PowerPoint presentation жизненный цикл создание палуб с нуля, добавление и переупорядочение слайдов, заполнение их с формами, таблицами и форматированным текстом, а также сохранением результата в PPTX, ODP, PDF или Все это происходит в чистом Python без зависимости от Microsoft Office или любой внешний бинарный файл.
Библиотека доступна на PyPI как: aspose-slides-foss Под лицензией MIT. с ним . pip, импортировать его, и начать создавать презентации в нескольких строках кода. вы автоматизируете генерацию отчетов, создавая слайд-дека трубопровод или встраивание вывод презентации в веб-приложении, API охватывает всю поверхность: слайд коллекции, мастер-слайды/лаяут-диски, коллекция форм, текстовые рамки, форматы заполнения и экспортные варианты.
В этом посте мы расскажем о основных возможностях управления презентацией классах и методах, которые вы будете использовать больше всего при работе со слайдами в Python.
Что входит в него?
Презентация Цикл жизни
В связи с этим Presentation Создать новую колоду, манипулировать ее содержанием., и сохранять в любом поддерживаемом формате. Презентации поддерживали протокол менеджера контекста, ресурсы автоматически высвобождаются.
import io
from aspose.slides_foss import Presentation
from aspose.slides_foss.export import SaveFormat
with Presentation() as pres:
# A new presentation starts with one blank slide
print("Slides:", len(pres.slides)) # 1
# Save to a file
pres.save("output.pptx", SaveFormat.PPTX)
# Or save to a stream
buf = io.BytesIO()
pres.save(buf, SaveFormat.PPTX)
Операции по сбору слайдов
SlideCollection позволяет добавлять, вставлять клонировать удалить и переупорядочить слайды. каждый Операция обновляет внутренний индекс так, что len(pres.slides) всегда отражает текущий подсчет.
from aspose.slides_foss import Presentation, ShapeType
with Presentation() as pres:
layout = pres.layout_slides[0]
# Add a blank slide using the first layout
pres.slides.add_empty_slide(layout)
# Insert at a specific position
pres.slides.insert_empty_slide(1, layout)
# Clone an existing slide (shapes are copied)
pres.slides[0].shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 200, 100)
pres.slides.add_clone(pres.slides[0])
print("Total slides:", len(pres.slides)) # 4
# Remove by index
pres.slides.remove_at(3)
Формы и автоформы
Добавить прямоугольники, эллипс, треуглы и другие геометрические формы на любой слайд через ShapeCollection.add_auto_shape().Каждая форма показывает положение, размер и вращение., и заполнения свойств, которые сохраняются в течение циклов сохранения/перезагрузки.
from aspose.slides_foss import Presentation, ShapeType
with Presentation() as pres:
slide = pres.slides[0]
slide.shapes.clear()
rect = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 150)
rect.rotation = 15
ellipse = slide.shapes.add_auto_shape(ShapeType.ELLIPSE, 400, 50, 200, 200)
# Reorder z-index
slide.shapes.reorder(0, ellipse)
print("Front shape:", slide.shapes[0].shape_type) # ELLIPSE
Таблицы
Создание таблиц данных с помощью: ShapeCollection.add_table(), настроить текст ячейки через TextFrame, объедините ячейки и примените форматирование границ. Высота строк и столбцов ширины совпадают с значениями, которые вы передаете конструктору.
from aspose.slides_foss import Presentation, FillType
from aspose.slides_foss.drawing import Color
with Presentation() as pres:
slide = pres.slides[0]
slide.shapes.clear()
table = slide.shapes.add_table(50, 50, [150, 150, 150], [40, 40, 40])
table.rows[0][0].text_frame.text = "Name"
table.rows[0][1].text_frame.text = "Role"
table.rows[0][2].text_frame.text = "Team"
# Merge two cells in the second row
table.merge_cells(table.rows[1][0], table.rows[1][1], False)
# Style the header row borders
for col_idx in range(len(table.columns)):
fmt = table.rows[0][col_idx].cell_format
fmt.border_bottom.fill_format.fill_type = FillType.SOLID
fmt.border_bottom.fill_format.solid_fill_color.color = Color.black
fmt.border_bottom.width = 2
Главные слайды и схемы
Каждая презентация имеет иерархию слайдов мастер-класса и слайда макета. Доступ к ним через Presentation.masters и в том числе: Presentation.layout_slides применять последовательно Форматирование по всей палубе.
from aspose.slides_foss import Presentation
with Presentation() as pres:
master = pres.masters[0]
print("Master layouts:", len(master.layout_slides))
# Pick a layout by type
from aspose.slides_foss import SlideLayoutType
title_layout = pres.layout_slides.get_by_type(SlideLayoutType.TITLE)
if title_layout:
pres.slides.add_empty_slide(title_layout)
Свойства документа
Читать и писать встроенные метаданные, такие как название, автор и предмет через DocumentProperties Собственности сохраняются в сохраненном файле.
from aspose.slides_foss import Presentation
from aspose.slides_foss.export import SaveFormat
with Presentation() as pres:
props = pres.document_properties
props.title = "Quarterly Report"
props.author = "Engineering"
props.subject = "Q1 2026 Results"
pres.save("report.pptx", SaveFormat.PPTX)
Быстрый старт .
pip install aspose-slides-foss
from aspose.slides_foss import Presentation, ShapeType, FillType, NullableBool
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat
with Presentation() as pres:
slide = pres.slides[0]
slide.shapes.clear()
# Add a title shape
title = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 30, 860, 80)
tf = title.add_text_frame("Quarterly Report")
tf.paragraphs[0].portions[0].portion_format.font_bold = NullableBool.TRUE
tf.paragraphs[0].portions[0].portion_format.font_height = 28
# Add a data table
table = slide.shapes.add_table(50, 150, [200, 200, 200], [40, 40, 40])
headers = ["Region", "Revenue", "Growth"]
for i, h in enumerate(headers):
table.rows[0][i].text_frame.text = h
# Fill the title shape background
title.fill_format.fill_type = FillType.SOLID
title.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 51, 102)
# Save as PPTX
pres.save("report.pptx", SaveFormat.PPTX)
Поддерживаемые форматы
| Формат: | Расширение | Читайте . | Написать . |
|---|---|---|---|
| PPTX | .pptx (англ.) | ✓ | ✓ |
| PPT | .ppt | — | Планируется |
| PPSX | .ppsx (полное название) | — | Планируется |
| PPTM | .pptm | — | Планируется |
| POTX | .- Покс . | — | Планируется |
| ODP | .odp (полное название) | — | Планируется |
| .pdf - Справочник по образованию | — | Планируется | |
| HTML | .html - это | — | Планируется |
| HTML5 | .html - это | — | Планируется |
| TIFF | .- Тыф . | — | Планируется |
| GIF | .gif - это … | — | Планируется |
| XPS | .xps | — | Планируется |
| FODP | .fodp (по-английски) | — | Планируется |
| MD | .md | — | Планируется |
Примечание: В настоящее время реализуется только экспорт PPTX. SaveFormat В настоящее время существуют несколько вариантов, которые могут быть использованы для перспективной совместимости, но еще не функциональны. save() метод всегда производит выход PPTX независимо от параметра формата.
Открытый исходный код и лицензирование
Aspose.Slides FOSS for Python is released under the MIT license. You can use it in личные, академические и коммерческие проекты без ограничений. доступна на: GitHub и пакет опубликован в PyPI.