博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Docx4j操作PPT指南系列(一)
阅读量:6307 次
发布时间:2019-06-22

本文共 1906 字,大约阅读时间需要 6 分钟。

使用Docx4j操作PPT指南系列(一)

                                                         —— pptx文档的生成与添加新页

写在最前

        由于项目需要系统生成ppt文档,在开源技术中选定了docx4j。docx4j操作ppt的文档几乎没有(中文的就更加凤毛麟角了),所有的东西只能自己去摸索,因此才有了这一系列的文档,也算是抛砖引玉,受限于项目使用场景,本系列仅对项目中使用的一些功能进行描述,我想差不多能够涵盖基本的功能,欢迎各位看官与我进行交流,共同进步。

准备工作

下载docx4j,项目网址:

下载地址:

  • SVN trunk: 
  • 2.7.1 release: 

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,如需转载请自行联系原作者

你可能感兴趣的文章
如何在 Ubuntu Linux 16.04 LTS 中使用多个连接加速 apt-get/apt
查看>>
《OpenACC并行编程实战》—— 导读
查看>>
机器学习:用初等数学解读逻辑回归
查看>>
如何在 Ubuntu 中管理和使用逻辑卷管理 LVM
查看>>
Oracle原厂老兵:从负面案例看Hint的最佳使用方式
查看>>
把自己Github上的代码添加Cocoapods支持
查看>>
C语言OJ项目参考(2493)四则运算
查看>>
零基础入门深度学习(二):神经网络和反向传播算法
查看>>
find和xargs
查看>>
数据结构例程—— 交换排序之快速排序
查看>>
WKWebView代理方法解析
查看>>
IOS定位服务的应用
查看>>
[SMS&WAP]实例讲解制作OTA短信来自动配置手机WAP书签[附源码]
查看>>
IOS中图片(UIImage)拉伸技巧
查看>>
【工具】系统性能查看工具 dstat
查看>>
基于zepto或jquery的手机端弹出框成功,失败,加载特效
查看>>
php引用(&)
查看>>
Delphi 操作Flash D7~XE10都有 导入Activex控件 shockwave
查看>>
基于上下文无关文法的句子生成算法
查看>>
回顾两年前整理的前端规范
查看>>