Introduction
Ця книга показує, як створювати, змінювати та зберігати презентації PowerPoint програмно в Python з використанням Aspose.Slides FOSS. Бібліотека дозволяє створити слайди від нуля, додавати і перепорядкувати слайда, заповнювати їх формами, таблицями та форматованим текстом, а потім зберегти результат у PPTX. Вся обробка відбувається в чистому Python без залежності від Microsoft Office або будь-якої зовнішньої двоякісної системи.
Бібліотека доступна на PyPI як: aspose-slides-foss під ліцензією MIT. його з pip, імпортувати його, і почати створення презентацій в декількох рядках коду. Ви автоматизуєте генерацію звітів, будуючи слайд-деке трубопровід або вбудовані вихід презентації в веб-додатку, API охоплює всю поверхню: слайд колекції, основні/макетні слайди, колекція форм, текстові рамки, формати заповнення та варіанти експорту.
У цьому публікації ви дізнаєтеся про основні можливості управління презентаціями класи та методи, які Ви будете використовувати найбільше при роботі зі слайдами в Python.
Що включається
Презентація Цикл життя
У. Presentation клас - це точка входу. Створіть нову колоду, маніпулюйте її змістом і збережіть до PPTX. Використовуйте Presentation як менеджер контексту з with автоматично відпускати файлові ручки.
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
Tables
Створення таблиць даних з: ShapeCollection.add_table(), встановлюється текст клітини через TextFrame, з’єднати клітини та застосувати форматизацію кордонів. Висота рядків і стовпців ширини відповідають значенням, які ви передаєте конструктору.
from aspose.slides_foss import Presentation, FillType
from aspose.slides_foss.drawing import Color
table = slide.shapes.add_table(50, 50, [150, 150, 150], [40, 40, 40])
# Merge two cells in the second row
table.merge_cells(table.rows[1][0], table.rows[1][1], False)
# Style the header row with a bottom border
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.from_argb(255, 0, 0, 0)
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 Об’єкт. Назначити будь-які з цих властивостей перед закликанням save() вони вбудовані у метадані PPTX і читаються інструментами, що знаходяться далі:
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 для встановлення Aspose.Slides FOSS for Python з PyPI:
pip install aspose-slides-foss
Наступний приклад створює презентацію з формою заголовку, таблицею даних та заповненням, а потім зберігає її в PPTX:
from aspose.slides_foss import Presentation, ShapeType, FillType, NullableBool
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat
# 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)
Підтримувані формати
| Format | Extension | Read | Write |
|---|---|---|---|
| PPTX | .pptx | ✓ | ✓ |
| PPT | .ppt | — | Planned |
| PPSX | .ppsx | — | Planned |
| PPTM | .pptm | — | Planned |
| POTX | .покс | — | Planned |
| ODP | .odp | — | Planned |
| — | Planned | ||
| HTML | .html (доступний файл) | — | Planned |
| HTML5 | .html (доступний файл) | — | Planned |
| TIFF | .Тиф. | — | Planned |
| GIF | .gif | — | Planned |
| XPS | .xps | — | Planned |
| FODP | .fodp | — | Planned |
| MD | .md | — | Planned |
Примітка: Читання та запис PPTX повністю реалізовані. SaveFormat значення (PPT, ODP, PDF і т. д.) плануються для майбутніх випусков; передача їх до save() що в даний час виробляє вихід PPTX.
Відкритий код та ліцензія
Aspose.Slides FOSS for Python is released under the MIT license. You can use it in Персональні, академічні та комерційні проекти без обмежень. доступний на: GitHub і пакет опублікований на: PyPI.