前序
因为业务要求需要使用自定义模板来生成PPT,但是查阅了大量的资料的发现目前后台的开发PPT框架不支持公司的业务:
- poi。去看了apachePOI官方文档可以发现并没有生成图片(chart)的方法,只能使用简单的PPT模板类型,其对应的PPT类已经很久没有更新了
- Docx4j。 使用PPT需要学习XML对应的格式,直接不考虑
- 付费软件;Free Spire.Presentation for Java 等太贵了
最终找到一款正在开源的前端框架PptxGenJS,这个框架很符合目前我需要生成自定义多图表的模板PPT,对应的官网PptxGenJS.
里面有所需的对应的各种比较常见的接口:图片、图表、媒体(音乐、视频)、表(table)、各种形状以及文本框。基本可以满足你自定义的需求。
基本页面的生成如下:
npm install pptxgenjs --save
// 1. 创建ppt
let pres = new pptxgen();
// 2.创建一页幻灯片
let slide = pres.addSlide();
// 3. 在创建的这一页ppt中添加文本框并在对应的位置填写"Hello World from PptxGenJS..."
slide.addText("Hello World from PptxGenJS...", {
x: 1.5,
y: 1.5,
color: "363636",
fill: { color: "F1F1F1" },
align: pres.AlignH.center,
});
// 4. 生成PPT文件
pres.writeFile({ fileName: "Sample Presentation.pptx" });
以上就是最简单的生成PPT文件的demo,更加详细的demo,可以在PPTDemo进行下载