常见问题

常见问题

我如何安装 Aspose.Slides FOSS?

将 Maven 依赖添加到您的 pom.xml。需要 Java 21 或更高版本。

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

验证安装:

import org.aspose.slides.foss.Presentation;

Presentation prs = new Presentation();
try {
    System.out.println("Slides: " + prs.getSlides().size());
} finally {
    prs.dispose();
}

无需 Microsoft Office 或其他系统运行时。


为什么必须在 Presentation 上调用 dispose()

Presentation 类管理内部 OPC 包资源。如果不调用 dispose(),这些资源将不会被释放,可能导致内存泄漏或文件锁定。始终使用 try-finally:

Presentation prs = new Presentation("input.pptx");
try {
    // work here
    prs.save("output.pptx", SaveFormat.PPTX);
} finally {
    prs.dispose();
}

或者,使用 try-with-resources,因为 Presentation 实现了 AutoCloseable

try (Presentation prs = new Presentation("input.pptx")) {
    prs.save("output.pptx", SaveFormat.PPTX);
}

我可以保存为哪些文件格式?

仅支持 PPTX

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

prs.save("output.pptx", SaveFormat.PPTX);

此版本不支持导出为 PDF、HTML、SVG 或图像格式(PNG、JPEG)。


我可以打开 .ppt(旧的 PowerPoint 97-2003)文件吗?

不。仅支持 .pptx(Office Open XML)文件。此库不处理传统的 .ppt 二进制格式。


我如何访问幻灯片?

幻灯片是一个从零开始的集合,可通过 prs.getSlides() 访问:

ISlide firstSlide = prs.getSlides().get(0);
int slideCount = prs.getSlides().size();

我该如何添加第二张幻灯片?

使用 prs.getSlides().addEmptySlide() 并使用布局:

try (Presentation prs = new Presentation()) {
    ILayoutSlide layout = prs.getLayoutSlides().get(0);
    prs.getSlides().addEmptySlide(layout);
    ISlide slide2 = prs.getSlides().get(1);
    prs.save("two-slides.pptx", SaveFormat.PPTX);
}

我如何设置幻灯片的背景颜色?

此版本的 Aspose.Slides FOSS 不支持 幻灯片背景颜色。此库中 ISlide 或任何其他类上没有 getBackground() 方法。幻灯片背景在从模板创建演示文稿时已固定。未来的版本可能会添加背景控制。


我该如何使用NullableBool

NullableBool 是用于格式化属性的三态枚举。使用 NullableBool.TRUE(而不是 Java 的 true)来表示粗体、斜体等属性:

import org.aspose.slides.foss.NullableBool;

fmt.setFontBold(NullableBool.TRUE);
fmt.setFontItalic(NullableBool.FALSE);

为什么设置文本颜色没有效果?

在分配颜色之前,您还必须将 fillType 设置为 FillType.SOLID

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

fmt.getFillFormat().setFillType(FillType.SOLID);
fmt.getFillFormat().getSolidFillColor().setColor(Color.fromArgb(255, 200, 0, 0));

我可以使用图表或SmartArt吗?

不。图表、SmartArt、OLE 对象、动画、过渡、超链接、VBA 宏和数字签名在此版本中未实现,并会引发 UnsupportedOperationException


库是否线程安全?

每个 Presentation 对象都是独立的。只要您不在没有外部同步的情况下跨线程共享单个 Presentation 对象,从不同线程创建和使用独立的 Presentation 实例是安全的。


如何嵌入图像?

读取图像字节并将其添加到 prs.getImages(),然后创建一个 PictureFrame

import org.aspose.slides.foss.ShapeType;

byte[] imageData = java.nio.file.Files.readAllBytes(
    java.nio.file.Paths.get("logo.png")
);
IPPImage image = prs.getImages().addImage(imageData);
slide.getShapes().addPictureFrame(ShapeType.RECTANGLE, 50, 50, 200, 150, image);

另见

 中文