Πώς να δημιουργήσετε παρουσιάσεις σε Python

Πώς να δημιουργήσετε παρουσιάσεις σε Python

Το Aspose.Slides FOSS for Python σας επιτρέπει να δημιουργείτε παρουσιάσεις PowerPoint εξ ολοκλήρου σε Python χωρίς εξάρτηση από το Microsoft Office. Αυτός ο οδηγός δείχνει πώς να δημιουργήσετε μια νέα παρουσίαση, να προσθέσετε διαφάνειες και σχήματα, να μορφοποιήσετε κείμενο και να αποθηκεύσετε το αποτέλεσμα.

Οδηγός βήμα-βήμα

Βήμα 1: Εγκατάσταση του πακέτου

Εγκαταστήστε το Aspose.Slides FOSS από το PyPI. Απαιτείται Python 3.10 ή νεότερη έκδοση.

pip install aspose-slides-foss

Επαληθεύστε την εγκατάσταση:

import aspose.slides_foss as slides
print("Aspose.Slides FOSS ready")

Η εξάρτηση lxml εγκαθίσταται αυτόματα. Δεν απαιτούνται άλλα πακέτα συστήματος.


Βήμα 2: Εισαγωγή των Απαιτούμενων Μονάδων

Εισάγετε το πακέτο και το enum SaveFormat που χρειάζεται για αποθήκευση.

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

Όλες οι σταθερές τύπου σχήματος βρίσκονται στο aspose.slides_foss.ShapeType. Όλοι οι τύποι μορφοποίησης (FillType, NullableBool) είναι επίσης στο aspose.slides_foss.


Βήμα 3: Δημιουργία παρουσίασης

Χρησιμοποιήστε slides.Presentation() ως διαχειριστή περιβάλλοντος. Μια νέα παρουσίαση ξεκινά με μία κενή διαφάνεια.

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

with slides.Presentation() as prs:
    print(f"Slides in new presentation: {len(prs.slides)}")
    # work with prs inside this block
    prs.save("output.pptx", SaveFormat.PPTX)

Σημαντικό: Πάντα ανοίξτε και χρησιμοποιήστε Presentation μέσα σε ένα with block. Μην αποθηκεύετε μια αναφορά εκτός της δήλωσης with· οι πόροι δεν θα απελευθερωθούν σωστά.


Βήμα 4: Πρόσβαση σε μια διαφάνεια

Η πρώτη διαφάνεια βρίσκεται στο δείκτη 0. Μια κενή παρουσίαση έχει ακριβώς μία διαφάνεια.

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

with slides.Presentation() as prs:
    slide = prs.slides[0]  # zero-based index
    print(f"Slide at index 0: {slide}")
    prs.save("output.pptx", SaveFormat.PPTX)

Βήμα 5: Προσθήκη σχήματος

Χρησιμοποιήστε slide.shapes.add_auto_shape() για να προσθέσετε ένα AutoShape. Οι παράμετροι είναι (shape_type, x, y, width, height) όλα σε μονάδες point (1 point = 1/72 ίντσα· το τυπικό slide είναι 720 × 540 pt).

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

with slides.Presentation() as prs:
    slide = prs.slides[0]

    # Rectangle at (50, 50) with 400 wide and 120 tall
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 400, 120)

    # Attach a text frame
    shape.add_text_frame("Hello from Aspose.Slides FOSS!")

    prs.save("with-shape.pptx", SaveFormat.PPTX)

Βήμα 6: Αποθήκευση της Παρουσίασης

Καλέστε prs.save(path, SaveFormat.PPTX) πριν το μπλοκ with τερματιστεί. Το PPTX είναι η μόνη υποστηριζόμενη μορφή εξόδου.

prs.save("result.pptx", SaveFormat.PPTX)

Το αρχείο γράφεται ατομικά· εάν προκύψει σφάλμα πριν από αυτήν την κλήση, δεν δημιουργείται αρχείο εξόδου.


Πλήρες Παράδειγμα Εργασίας

Το παρακάτω script δημιουργεί μια παρουσίαση δύο διαφανειών με ένα σχήμα τίτλου στην πρώτη διαφάνεια και έναν πίνακα στη δεύτερη.

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType, NullableBool, FillType
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    # --- Slide 1: title shape ---
    slide1 = prs.slides[0]
    title = slide1.shapes.add_auto_shape(ShapeType.RECTANGLE, 40, 40, 640, 80)
    tf = title.add_text_frame("Q1 Results: Executive Summary")
    fmt = tf.paragraphs[0].portions[0].portion_format
    fmt.font_height = 32
    fmt.font_bold = NullableBool.TRUE
    fmt.fill_format.fill_type = FillType.SOLID
    fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 70, 127)

    # --- Slide 2: table ---
    prs.slides.add_empty_slide(prs.layout_slides[0])
    slide2 = prs.slides[1]
    table = slide2.shapes.add_table(40, 40, [200.0, 120.0, 120.0], [40.0, 40.0, 40.0])
    headers = ["Region", "Revenue", "Growth"]
    data = [
        ["North", "$1.2M", "+8%"],
        ["South", "$0.9M", "+4%"],
    ]
    for col, header in enumerate(headers):
        table.rows[0][col].text_frame.text = header
    for row_idx, row_data in enumerate(data):
        for col, cell_text in enumerate(row_data):
            table.rows[row_idx + 1][col].text_frame.text = cell_text

    prs.save("q1-results.pptx", SaveFormat.PPTX)

print("Saved q1-results.pptx")

Κοινά προβλήματα και διορθώσεις

ResourceWarning: unclosed Presentation

Δημιουργείτε μια παρουσία του Presentation χωρίς ένα μπλοκ with. Πάντα χρησιμοποιήστε:

with slides.Presentation() as prs:
    ...

AttributeError: __enter__

Αν δείτε αυτό το σφάλμα, ελέγξτε ότι έχετε εισάγει το aspose.slides_foss (και όχι το aspose.slides). Το όνομα του πακέτου στο PyPI είναι aspose-slides-foss και η εισαγωγή κατά το χρόνο εκτέλεσης είναι aspose.slides_foss.

TypeError: SaveFormat.PPTX is not callable

SaveFormat.PPTX είναι μέλος enum, όχι συνάρτηση. Χρησιμοποιήστε το ως prs.save("file.pptx", SaveFormat.PPTX).


Συχνές Ερωτήσεις

Ποιο είναι το προεπιλεγμένο μέγεθος διαφάνειας;

Ένα νέο Presentation() δημιουργεί διαφάνειες στο τυπικό μέγεθος 10 × 7,5 ίντσες (720 × 540 σημεία). Η αλλαγή του μεγέθους της διαφάνειας δεν υποστηρίζεται ακόμη σε αυτήν την έκδοση.

Μπορώ να προσθέσω περισσότερες από μία διαφάνειες;

Ναι. Καλέστε prs.slides.add_empty_slide(prs.layout_slides[0]) για να προσθέσετε μια κενή διαφάνεια και να την προσπελάσετε με δείκτη:

prs.slides.add_empty_slide(prs.layout_slides[0])
slide2 = prs.slides[1]

Μπορώ να ανοίξω ένα υπάρχον αρχείο και να προσθέσω διαφάνειες;

Ναι:

with slides.Presentation("existing.pptx") as prs:
    prs.slides.add_empty_slide(prs.layout_slides[0])
    prs.save("existing.pptx", SaveFormat.PPTX)

Σε ποιες μορφές μπορώ να αποθηκεύσω;

Μόνο SaveFormat.PPTX υποστηρίζεται. Η εξαγωγή σε PDF, HTML, SVG ή εικόνες δεν είναι διαθέσιμη σε αυτήν την έκδοση.


Δείτε επίσης

 Ελληνικά