介绍

Aspose.Slides FOSS for Java 是一个免费、开源的库,允许 Java 开发者在不依赖 Microsoft Office 的情况下创建和操作 PowerPoint 演示文稿。该库在 org.aspose.slides.foss 包中发布,目标平台为 Java 21 及以上。

该项目采用 MIT 许可证发布,您可以在个人和商业项目中免费使用,无需 API 密钥。它提供了丰富的对象模型,支持幻灯片、形状、文本、表格、图像、批注和文档属性,并通过直接操作 Office Open XML 包格式来实现。

拥有273个类、超过2,600个方法和42个枚举,核心 API 包含了在任何 Java 应用程序中自动化演示工作流所需的构建块。


包含的内容

演示生命周期

Presentation 类是所有操作的入口点。您可以创建一个空白演示文稿,并将结果保存到磁盘或以多种格式保存到 OutputStream。该类实现了 AutoCloseable,因此它可以自然地与 try-with-resources 块一起使用。

import org.aspose.slides.foss.*;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation pres = new Presentation()) {
    // A new presentation starts with one blank slide
    System.out.println("Slides: " + pres.getSlides().size());
    pres.save("output.pptx", SaveFormat.PPTX);
}

幻灯片管理

SlideCollection 提供对幻灯片文稿的完整控制。您可以使用 addEmptySlide() 添加空白幻灯片,使用 addClone() 复制现有幻灯片,使用 insertEmptySlide() 在特定索引处插入幻灯片,按引用或索引删除幻灯片,并遍历集合。

try (Presentation pres = new Presentation()) {
    ILayoutSlide layout = pres.getLayoutSlides().get(0);
    pres.getSlides().addEmptySlide(layout);
    pres.getSlides().addClone(pres.getSlides().get(0));
    System.out.println("Total slides: " + pres.getSlides().size());
}

形状和自动形状

AutoShape 类表示幻灯片上最常见的可绘制对象。您可以通过 IShapeCollection.addAutoShape() 创建形状,指定 ShapeType 常量(例如 ShapeType.RECTANGLE)和位置坐标。每个 AutoShape 都公开一个 TextFrame 用于文本内容,以及一个 FillFormat 用于视觉样式。

try (Presentation pres = new Presentation()) {
    ISlide slide = pres.getSlides().get(0);
    IAutoShape shape = slide.getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 300, 100, false);
    ITextFrame tf = shape.addTextFrame("Hello from Aspose.Slides FOSS");
    System.out.println(tf.getText());
}

文本和段落

富文本被建模为 TextFrameParagraphCollectionParagraphPortionCollectionPortion 对象的层次结构。您可以使用 TextFrame.setText() 直接在框架上设置纯文本,或通过添加具有不同格式的单个 Portion 实例来构建多运行段落。

try (Presentation pres = new Presentation()) {
    ISlide slide = pres.getSlides().get(0);
    IAutoShape shape = slide.getShapes()
        .addAutoShape(ShapeType.RECTANGLE, 50, 50, 400, 100, false);
    ITextFrame tf = shape.addTextFrame("First run ");
    Portion extra = new Portion("second run");
    tf.getParagraphs().get(0).getPortions().add(extra);
    System.out.println(tf.getText());
}

文档属性

DocumentProperties 类公开标准元数据字段,如标题、作者、主题、关键字、类别和时间戳。属性持久化在 PPTX 核心和扩展属性部分,并在往返保存/重新加载周期中保持。

try (Presentation pres = new Presentation()) {
    IDocumentProperties props = pres.getDocumentProperties();
    props.setTitle("Quarterly Report");
    props.setAuthor("Engineering Team");
    pres.save("report.pptx", SaveFormat.PPTX);
}

注释和标注

评论子系统包括 CommentAuthorCollectionCommentCollection。您可以添加作者,将评论附加到特定幻灯片和位置,并读取现有的注释。评论数据存储在 PPTX 包的 ppt/commentAuthors.xmlppt/comments/*.xml 部分。


快速入门

将 Maven 依赖添加到您的 pom.xml

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

然后创建并保存演示文稿:

import org.aspose.slides.foss.*;
import org.aspose.slides.foss.export.SaveFormat;

public class QuickStart {
    public static void main(String[] args) {
        try (Presentation pres = new Presentation()) {
            ISlide slide = pres.getSlides().get(0);

            // Add a title shape
            IAutoShape title = slide.getShapes().addAutoShape(
                ShapeType.RECTANGLE, 50, 30, 600, 60, false);
            title.addTextFrame("Aspose.Slides FOSS for Java");

            // Add a content shape
            IAutoShape body = slide.getShapes().addAutoShape(
                ShapeType.RECTANGLE, 50, 120, 600, 300, false);
            body.addTextFrame(
                "This presentation was created entirely in Java "
                + "using a free, open-source library.");

            pres.save("quick-start.pptx", SaveFormat.PPTX);
        }
    }
}

支持的格式

SaveFormat 枚举定义了库可以写入的所有输出格式。下面的表格列出了已确认的条目。

格式扩展名写入
PPTX.pptx
PPTM.pptm
PPSX.ppsx
PPSM.ppsm
POTX.potx
POTM.potm
ODP.odp
OTP.otp
FODP.fodp
PPT.ppt
PPS.pps
POT.pot
PDF.pdf
XPS.xps
HTML.html
HTML5.html
SVG.svg
TIFF.tiff
PNG.png
JPEG.jpeg
BMP.bmp
GIF.gif
MD.md

上述列出的格式是已确认的导出目标,定义于 SaveFormat 枚举中。


开源与许可

Aspose.Slides FOSS for Java 在 MIT 许可证下分发。完整源代码可在 GitHub 上的 Aspose.Slides-FOSS-for-Java 获取。您可以在任何项目中自由使用、修改和重新分发该库,无需版税或许可证密钥。


入门

准备深入了解吗?以下资源可帮助您入门: