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