本文共 1906 字,大约阅读时间需要 6 分钟。
使用Docx4j操作PPT指南系列(一)
—— pptx文档的生成与添加新页
写在最前
由于项目需要系统生成ppt文档,在开源技术中选定了docx4j。docx4j操作ppt的文档几乎没有(中文的就更加凤毛麟角了),所有的东西只能自己去摸索,因此才有了这一系列的文档,也算是抛砖引玉,受限于项目使用场景,本系列仅对项目中使用的一些功能进行描述,我想差不多能够涵盖基本的功能,欢迎各位看官与我进行交流,共同进步。
准备工作
下载docx4j,项目网址:
下载地址:
Maven配置:
< dependency > < groupId >org.docx4j</ groupId > < artifactId >docx4j</ artifactId > < version >2.7.1</ version > </ dependency > |
注意:docx4j主要用于操作Office2007版本。
创建ppt文档
public class CreatePPTX { public static void main(String[] args) throws Exception { String outputfilepath = "c://pptx-test.pptx";// 创建文档的主体 PresentationMLPackage presentationMLPackage = PresentationMLPackage.createPackage();// 获取MainPresentationPart,实际上使用 // presentationMLPackage.getMainPresentationPart(); 方法也可以 MainPresentationPart pp = (MainPresentationPart)presentationMLPackage.getParts().getParts().get(new PartName("/ppt/presentation.xml"));// 获取布局信息,实际上是获取幻灯片母版的布局页,这个功能很重要。 // 创建一个新页时必须应用一个布局 // "/ppt/slideLayouts/slideLayout1.xml"这个是母版页的id,具体要看母版中有多少布 // 局样式,是1、2、3、4依次排列的 SlideLayoutPart layoutPart = (SlideLayoutPart)presentationMLPackage.getParts().getParts().get(new PartName("/ppt/slideLayouts/slideLayout1.xml"));// 创建一个新页,一定要带上布局页信息,否则打开ppt时会报错, // 并且自动指定一个默认的布局样式 // "/ppt/slides/slide1.xml" 每一页的partName不能重复 SlidePart slidePart = PresentationMLPackage.createSlidePart(pp, layoutPart, new PartName("/ppt/slides/slide1.xml"));// 保存成文件 presentationMLPackage.save(new File(outputfilepath)); System.out.println("\n\n done .. saved " + outputfilepath); } } |
个人建议不要直接创建新的ppt文件,一般对于企业来说都会有几种特定的ppt模板,直接使用这些模板可以节省大量的时间,而且封面页以及母版的布局都是定制好的,只需要用就可以了。
唯一代码上有所区别,是从一个文件中加载的,如下:
PresentationMLPackage presentationMLPackage = PresentationMLPackage.load(new File( PSMSConstants.REPORT_PPT2007_TEMPLATE_PATH)); |
OK, 在这一部分内容中,应该以及掌握了使用docx4j创建pptx文件以及添加内容页的方法,在下一部分中,将介绍如何向内容页中添加文本和图形等内容。
本文转自william_xu 51CTO博客,原文链接:http://blog.51cto.com/williamx/758955,如需转载请自行联系原作者