Create Presentations in Python via Java

Overview

This article shows how to create a presentation with Aspose.Slides for Python via Java, add a shape with text to the first slide, and save the result as a PPTX file. The FAQ covers output formats, templates, slide sizing, memory usage, threading, licensing, digital signatures, and VBA support.

Before you begin, install Python, a JDK, JPype, and Aspose.Slides for Python via Java. See Installation for the steps on Windows, Linux, and macOS.

Create a Presentation

Creating a PowerPoint file from scratch in Aspose.Slides for Python via Java is as straightforward as instantiating the Presentation class. The constructor automatically supplies a blank deck with a single slide, giving you an immediate canvas for shapes, text, charts, or any other content your application needs. Once you modify that slide—or add new ones—you can persist the result to PPTX, legacy PPT, or even OpenDocument formats. The short code sample below illustrates this workflow by adding a simple shape onto the first slide.

  1. Create an instance of the Presentation class.
  2. Get the first slide by its index, 0.
  3. Add an AutoShape of type ShapeType.Cloud using ShapeCollection.addAutoShape.
  4. Set the shape’s text using TextFrame.setText.
  5. Save the presentation using Presentation.save with SaveFormat.Pptx.

The following example starts the Java Virtual Machine (JVM) if it is not already running, adds a cloud shape with text to the first slide, and saves the presentation. Save it as create_presentation.py:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat, ShapeType

# Create a presentation with one blank slide.
presentation = Presentation()
try:
    # Get the first slide.
    slide = presentation.getSlides().get_Item(0)

    # Add a cloud shape and set its text.
    auto_shape = slide.getShapes().addAutoShape(ShapeType.Cloud, 20, 20, 200, 80)
    auto_shape.getTextFrame().setText("Hello, Aspose!")

    # Save the presentation as a PPTX file.
    presentation.save("new_presentation.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Run the script in the environment where you installed the packages:

python create_presentation.py

The cloud’s top-left corner is 20 points from the left and top edges of the slide, and the cloud is 200 points wide and 80 points high. The script saves new_presentation.pptx in the current working directory, with one slide that holds the cloud and its text. The JVM keeps running until the Python process exits; see Limitations and API Differences. Without a license, Aspose.Slides also adds an evaluation watermark text box to every slide it saves; see Licensing.

The result:

The new presentation

FAQ

What formats can I save a new presentation to?

You can save to PPTX, PPT, and ODP, and export to PDF, XPS, HTML, SVG, and images, among others.

Can I start from a template (POTX/POTM) and save as a regular PPTX?

Yes. Load the template and save to the desired format; POTX/POTM/PPTM and similar formats are supported.

How do I control slide size/aspect ratio when creating a presentation?

Set the slide size (including presets like 4:3 and 16:9 or custom dimensions) and choose how content should scale.

In what units are sizes and coordinates measured?

In points: 1 inch equals 72 units.

How do I handle very large presentations (with many media files) to reduce memory usage?

Use BLOB management strategies, limit in-memory storage by leveraging temporary files, and prefer file-based workflows over purely in-memory streams.

Can I create/save presentations in parallel?

You cannot operate on the same Presentation instance from multiple threads. Run separate, isolated instances per thread or process.

How do I remove the trial watermark and limitations?

Apply a license once per process. The license XML must remain unmodified, and the license setup should be synchronized if multiple threads are involved.

Can I digitally sign the PPTX I create?

Yes. Digital signatures (adding and verifying) are supported for presentations.

Are macros (VBA) supported in created presentations?

Yes. You can create/edit VBA projects and save macro-enabled files such as PPTM/PPSM.