Skip to content

Officia.Slides — PPT 转 PDF

能力摘要(AI 友好)OfficiaSlides 把 PowerPoint/PPTX 转 PDF,版式几何保真——形状按 a:xfrm 绝对定位摆放,每张幻灯片一页,占位符按 layout/master 继承。门面静态方法,纯 JDK 实现。 还原形状几何、渐变、阴影、透明度、表格、图表与图片效果(源图裁切、镜像、整体不透明度、双色调重着色)。

引入

xml
<dependency>
  <groupId>plus.ruoyi</groupId>
  <artifactId>officia-all</artifactId>
  <version>1.0.0</version>
</dependency>

这是唯一需要引的依赖:Maven Central 上只发布 officia-all 这一个构件, 它是含全部能力模块与授权客户端的单一 jar,且无任何第三方传递依赖。

PPT → PDF

java
import plus.ruoyi.officia.slides.OfficiaSlides;

byte[] pdf = OfficiaSlides.toPdf(pptxBytes);
ConvertResult r = OfficiaSlides.convert(pptxBytes, ConvertOptions.defaults());
System.out.println(r.getPageCount() + " 页");   // 页数即幻灯片数

方法一览

方法说明
toPdf(pptx)PPT → PDF
toPdf(pptx, options)带转换选项(字体目录、图像 DPI 等)
toPdf(InputStream)输入流来源(不主动关闭调用方的流)
toPdf(File)本地文件来源
convert(pptx, options)转换并返回富结果(PDF 字节 + 页数 + 耗时)

只要纯文本?

不需要另一条转换链,对产物再抽一次即可: OfficiaPdf.extractText(OfficiaSlides.toPdf(pptx))

转换选项

与 Words 通用,见 Words 的转换选项

设计型 PPT 建议保留默认的 maxImageDpi

模板素材的图片像素数常远超它在页面上占的面积,按原始像素嵌入会让产物大得离谱。 默认 150 dpi 会按显示面积降采样,肉眼看不出差别,却能把体积压掉一半以上; 需要原始像素时用 setMaxImageDpi(0)