1. 产品
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for Java

Aspose.Slides FOSS for Java

从 Java 创建、读取和编辑 PowerPoint 演示文稿 — 免费且开源,无需 Office 依赖。

开源 Java 库,用于 PowerPoint 演示文稿

Aspose.Slides FOSS for Java 是一个 MIT 许可证的 pure-Java 库,用于处理 PowerPoint .pptx 文件。添加单个 Maven 依赖,即可立即开始创建、读取和编辑演示文稿,而无需安装 Microsoft Office 或任何专有运行时。

该库提供了围绕 PresentationSlideShapeTextFrameParagraphPortion 构建的 Presentation API,这些是 PowerPoint 本身使用的概念模型。可以添加和删除幻灯片,插入自动形状、表格和连接线,在字符层面格式化文本(加粗、斜体、字号和颜色),应用纯色或渐变填充,并添加视觉效果(阴影、发光、模糊、反射)。

Presentation 类实现了 AutoCloseable,因此请使用 try-with-resources 进行可靠的清理。加载时遇到的未知 XML 部分在保存时会原样保留,因此往返读取永不会破坏库尚未理解的内容。该库要求 JDK 21 或更高版本,并且没有需要编译的本机扩展。

演示文稿和幻灯片 API

  • 创建和打开 PPTX: 通过 new Presentation()new Presentation(path) 创建新演示文稿或打开已有的 .pptx 文件。
  • 添加和删除幻灯片: 使用 addClone()addEmptySlide()remove()removeAt() 以编程方式管理 SlideCollection
  • AutoShape: 通过 addAutoShape() 插入矩形、椭圆、直线以及其他 ShapeType 几何形状。
  • 表格和连接线: 通过 addConnector() 添加结构化的表格形状以及形状之间的连接线。
  • 演讲者备注: 通过 NotesSlideManager 读取和写入每张幻灯片的演讲者备注。
  • 线程评论: 使用 getSlideComments() 访问幻灯片级别的评论线程。

Aspose.Slides FOSS 可用于何处

  • 报告生成: 在无需 Office 的情况下,从数据源构建品牌化的幻灯片套件。
  • 模板自动化: 在 CI/CD 流水线中使用动态内容填充 PPTX 模板。
  • 内容迁移: 读取现有演示文稿并重新组织或重新样式化幻灯片。
  • 无服务器后端: 在 Docker 容器或 Lambda 函数中处理 PPTX 文件。
  • 批量处理: 对大型幻灯片库进行统一的格式更改。

文本格式化与视觉效果

  • 字符级格式化: 通过 getPortionFormat() 对单个 Portion 对象应用粗体、斜体、字体大小和颜色。
  • 纯色和渐变填充: 使用 getFillFormat()FillType 将形状填充设置为纯色或多节点线性渐变。
  • 阴影和发光效果: 通过 getEffectFormat() 为任意形状应用外部阴影、发光、模糊和反射。
  • 段落对齐: 使用 getParagraphFormat().setAlignment() 为每个段落设置左对齐、居中、右对齐或两端对齐。
  • 往返安全: 未知的 XML 部分在重新保存时会原样保留。

开发者体验

Aspose.Slides FOSS 通过单个 Maven 依赖(org.aspose.slides.foss:aspose-slides-foss)进行安装。该库是纯 Java,无需编译本机扩展,也不需要安装系统软件包。

该 API 镜像了 PowerPoint 自身的对象模型(PresentationSlideShapeTextFrameParagraphPortion),因此熟悉 PowerPoint 对象模型的用户可以立即使用该库。它采用 MIT 许可证,在 GitHub 上开源,且要求 JDK 21 或更高版本。

创建演示文稿并添加形状

使用 try-with-resources 确保 Presentation 始终被关闭并释放资源。addAutoShape() 接受一个 ShapeType 枚举,然后是以点为单位的 x/y 位置和宽度/高度——形状的 getTextFrame().setText() 方法可一次性设置标签。

<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);

    // 添加一个矩形 AutoShape
    IAutoShape shape = slide.getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 400, 150
    );
    shape.getTextFrame().setText("你好, Aspose.Slides!");

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

格式化文本并应用填充效果

文本格式化在 Portion 级别进行——这是字符运行的最小单元。打开已保存的文件,定位到第一段的第一个 Portion,并通过 getter 和 setter 设置字体属性。形状填充是独立的:将 FillType 设置为 SOLID,并通过 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));

    // 对形状的实心背景填充
    shape.getFillFormat().setFillType(FillType.SOLID);
    shape.getFillFormat().getSolidFillColor()
        .setColor(new Color(240, 248, 255));

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

常见问题

Aspose.Slides FOSS for Java 是什么?

它是一个免费、MIT 许可证的 pure-Java 库,用于创建、读取和编辑 PowerPoint .pptx 演示文稿,无需 Microsoft Office。

支持哪些文件格式?

PPTX 是受支持的读写格式。此版本不提供导出为 PDF、HTML、SVG 或图像的功能。

它是否需要 Microsoft Office 或 PowerPoint?

不。Aspose.Slides FOSS 是一个 pure-Java 库,不依赖 Microsoft Office、COM 自动化或任何专有运行时。

我该如何安装它?

在你的项目中添加 Maven 依赖 org.aspose.slides.foss:aspose-slides-foss:1.0.0。无需额外的系统包或本机扩展。需要 JDK 21 或更高版本。

我可以应用阴影和发光等视觉效果吗?

是的。该库通过 EffectFormat API 支持对任何形状对象的外部阴影、发光、模糊和反射效果。

是否推荐使用 try-with-resources 模式?

是的。Presentation 实现了 AutoCloseable,因此应始终使用 try (Presentation prs = new Presentation()) { ... } 进行可靠的资源清理。

往返转换 PPTX 会破坏未知内容吗?

否。在加载过程中遇到的未知 XML 部分会在保存时原样保留,因此库尚未理解的内容永远不会丢失。

我可以在哪里找到源代码?

该库采用 MIT 许可证,托管在 GitHub 上。欢迎提交 bug 报告和 pull request。

  

支持和学习资源

 中文