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

Aspose.Slides FOSS 用于 Java

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

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

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

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

Presentation 类实现了 AutoCloseable,因此请使用 try-with-resources 进行可靠的清理。加载期间遇到的未知 XML 部分在保存时会原样保留,因此往返过程永远不会破坏库尚未理解的内容。有关更多功能和支持,请参阅 Aspose.Slides for Java enterprise edition

演示文稿和幻灯片 API

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

可以使用 Aspose.Slides FOSS 的地方

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

文本格式化与视觉效果

  • Character-level formatting: 通过 getPortionFormat() 对单个 Portion 对象应用粗体、斜体、字体大小和颜色。
  • 实心和渐变填充: 使用 getFillFormat()FillType 将形状填充设置为实色或多点线性渐变。
  • 阴影和发光效果: 通过 getEffectFormat() 对任意形状应用外部阴影、发光、模糊和反射。
  • 段落对齐: 使用 getParagraphFormat().setAlignment() 为每个段落设置左对齐、居中、右对齐或两端对齐。
  • Round-trip safe: 未知的 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 位置和宽度/高度。调用 addTextFrame() 来创建文本框并在一次调用中设置初始文本 — 不要在 addTextFrame() 之前调用 getTextFrame(),因为在创建之前框为 null。

<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");
}
 ```xml
<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>
 

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

文本格式化在 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")) {
    IAutoShape shape = (IAutoShape) 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");
}
 ```java
import org.aspose.slides.foss.*;
import org.aspose.slides.foss.drawing.Color;

try (Presentation prs = new Presentation("output.pptx")) {
    IAutoShape shape = (IAutoShape) 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");
}
 

常见问题

什么是 Aspose.Slides FOSS 用于 Java?

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

支持哪些文件格式?

.pptx 是受支持的读写格式。此版本不支持导出为 PDF、HTML、SVG 或图像。

它是否需要 Microsoft Office 或 PowerPoint?

不。Aspose.Slides FOSS 是一个纯-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 上。欢迎提交错误报告和拉取请求。

  

支持和学习资源

 中文