1. Sản Phẩm
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for Java

Aspose.Slides FOSS cho Java

Tạo, đọc và chỉnh sửa các bản trình chiếu PowerPoint từ Java — miễn phí và mã nguồn mở, không cần phụ thuộc vào Office.

Thư viện Java mã nguồn mở cho các bản trình chiếu PowerPoint

Aspose.Slides FOSS for Java là một thư viện thuần Java có giấy phép MIT, dùng để làm việc với các tệp PowerPoint .pptx. Thêm một phụ thuộc Maven duy nhất và ngay lập tức bắt đầu tạo, đọc và chỉnh sửa bản trình chiếu mà không cần cài đặt Microsoft Office hay bất kỳ môi trường chạy độc quyền nào.

Thư viện cung cấp một API Presentation được xây dựng quanh Presentation, Slide, Shape, TextFrame, ParagraphPortion, mô hình khái niệm mà PowerPoint tự sử dụng. Thêm và xóa slide, chèn AutoShapes, Tables và Connectors, định dạng văn bản ở mức ký tự với in đậm, in nghiêng, kích thước và màu chữ, áp dụng màu nền đặc hoặc gradient, và thêm các hiệu ứng hình ảnh (shadow, glow, blur, reflection).

Presentation class implements AutoCloseable, vì vậy sử dụng try-with-resources để dọn dẹp đáng tin cậy. Các phần XML không xác định gặp phải trong quá trình tải sẽ được giữ nguyên khi lưu, do đó việc round-tripping không bao giờ phá hủy nội dung mà thư viện chưa hiểu. Thư viện yêu cầu JDK 21 trở lên và không có phần mở rộng native nào để biên dịch.

Presentation and Slide API

  • Create and open PPTX: Create new presentations or open existing .pptx files via new Presentation() or new Presentation(path).
  • Add and remove slides: Programmatically manage the SlideCollection with addClone(), addEmptySlide(), remove(), and removeAt().
  • AutoShapes: Insert rectangles, ellipses, lines, and other ShapeType geometries via addAutoShape().
  • Tables and Connectors: Add structured table shapes and connector lines between shapes via addConnector().
  • Speaker notes: Read and write per-slide speaker notes through NotesSlideManager.
  • Threaded comments: Access slide-level comment threads with getSlideComments().

Where Aspose.Slides FOSS Can Be Used

  • Report generation: Build branded slide decks from data sources without Office.
  • Template automation: Fill PPTX templates with dynamic content in CI/CD pipelines.
  • Content migration: Read existing presentations and restructure or re-style slides.
  • Serverless backends: Process PPTX files inside Docker containers or Lambda functions.
  • Batch processing: Apply uniform formatting changes across large slide deck libraries.

Text Formatting and Visual Effects

  • Character-level formatting: Apply bold, italic, font size, and color to individual Portion objects via getPortionFormat().
  • Solid and gradient fills: Set shape fill to a solid color or multi-stop linear gradient using getFillFormat() and FillType.
  • Shadow and glow effects: Apply outer shadow, glow, blur, and reflection to any shape via getEffectFormat().
  • Paragraph alignment: Set left, center, right, or justify alignment per paragraph using getParagraphFormat().setAlignment().
  • Round-trip safe: Unknown XML parts are preserved verbatim on re-save.

Developer Experience

Aspose.Slides FOSS installs with a single Maven dependency (org.aspose.slides.foss:aspose-slides-foss). The library is pure Java with no native extensions to compile and no system packages to install.

The API mirrors PowerPoint’s own object model (Presentation, Slide, Shape, TextFrame, Paragraph, Portion), so anyone familiar with the PowerPoint object model can use the library immediately. It is MIT-licensed, open-source on GitHub, and requires JDK 21 or later.

Create a Presentation and Add a Shape

Use try-with-resources to ensure the Presentation is always closed and resources are freed. addAutoShape() takes a ShapeType enum, then x/y position and width/height in points. Call addTextFrame() to create the text frame and set the initial text in one call — do not call getTextFrame() before addTextFrame() as the frame is null until created.

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>
import org.aspose.slides.foss.*;

try (Presentation prs = new Presentation()) {
    ISlide slide = prs.getSlides().get(0);

    // Add a rectangle AutoShape
    IAutoShape shape = slide.getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 400, 150
    );
    shape.addTextFrame("Hello, Aspose.Slides!");

    prs.save("output.pptx");
}

Format Text and Apply a Fill Effect

Text formatting works at the Portion level — the smallest unit of a run of characters. Open the saved file, navigate to the first portion of the first paragraph, and set font properties via getters and setters. Shape fill is independent: set FillType to SOLID and assign a color via getSolidFillColor().setColor().

import org.aspose.slides.foss.*;
import org.aspose.slides.foss.drawing.Color;

try (Presentation prs = new Presentation("output.pptx")) {
    IShape shape = prs.getSlides().get(0).getShapes().get(0);
    IPortion portion = shape.getTextFrame()
        .getParagraphs().get(0).getPortions().get(0);

    // Bold, 18pt, dark-blue text
    portion.getPortionFormat().setFontBold(NullableBool.TRUE);
    portion.getPortionFormat().setFontHeight(18);
    portion.getPortionFormat().getFillFormat()
        .getSolidFillColor().setColor(new Color(0, 0, 139));

    // Solid background fill on the shape
    shape.getFillFormat().setFillType(FillType.SOLID);
    shape.getFillFormat().getSolidFillColor()
        .setColor(new Color(240, 248, 255));

    prs.save("formatted.pptx");
}

Câu Hỏi Thường Gặp

What is Aspose.Slides FOSS for Java?

It is a free, MIT-licensed pure-Java library for creating, reading, and editing PowerPoint .pptx presentations without requiring Microsoft Office.

Which file formats are supported?

PPTX is the supported read/write format. Export to PDF, HTML, SVG, or images is not available in this edition.

Does it require Microsoft Office or PowerPoint?

No. Aspose.Slides FOSS is a pure-Java library with no dependency on Microsoft Office, COM automation, or any proprietary runtime.

How do I install it?

Add the Maven dependency org.aspose.slides.foss:aspose-slides-foss:1.0.0 to your project. No additional system packages or native extensions are required. JDK 21 or later is required.

Can I apply visual effects like shadow and glow?

Yes. The library supports outer shadow, glow, blur, and reflection effects on any shape object via the EffectFormat API.

Is the try-with-resources pattern recommended?

Yes. Presentation implements AutoCloseable, so always use try (Presentation prs = new Presentation()) { ... } for reliable resource cleanup.

Will round-tripping a PPTX destroy unknown content?

No. Unknown XML parts encountered during load are preserved verbatim on save, so content the library does not yet understand is never lost.

Where can I find the source code?

The library is MIT-licensed and hosted on GitHub. Bug reports and pull requests are welcome.

  

Tài Nguyên Hỗ Trợ và Học Tập

 Tiếng Việt