java docx4j 使用教程_使用Docx4j操作PPT指南系列(二)
public static void main(String[] args) {
try {
// 加载一个ppt文件作为模板
PresentationMLPackage presentationMLPackage = PresentationMLPackage
.load(new File(PSMSConstants.REPORT_PPT2007_TEMPLATE_PATH));
SlidePart slidePart = (SlidePart) presentationMLPackage.getParts()
.getParts().get(new PartName("/ppt/slides/slide1.xml"));
// 读取XML生成形状
Shape title = (Shape) XmlUtils.unmarshalString(
getSlideTitle("使用Docx4j操作PPT指南系列(二)"), Context.jcPML);
// 注意,主标题与副标题的xml是不同的
Shape subtitle = (Shape) XmlUtils.unmarshalString(
getSubSlideTitle("使用xml 添加标题与副标题"), Context.jcPML);
((Sld) slidePart.getJaxbElement()).getCSld().getSpTree()
.getSpOrGrpSpOrGraphicFrame().add(title);
((Sld) slidePart.getJaxbElement()).getCSld().getSpTree()
.getSpOrGrpSpOrGraphicFrame().add(subtitle);
String path = "c://test.pptx";
presentationMLPackage.save(new java.io.File(path));
} catch (Docx4JException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 生成标题
*
* @param preset
* @return
*/
public static String getSlideTitle(String preset) {
return "
+ "xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" "
+ "xmlns:p=\"http://schemas.openxmlformats.org/presentationml/2006/main\">"
+ ""
+ ""
+ ""
+ ""
+ "
"
+ ""
+ ""
+ preset
+ ""
+ ""
+ "
";
}
/**
* 添加副标题
*
* @param preset
* @return
*/
public static String getSubSlideTitle(String preset) {
return "
+ "xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" "
+ "xmlns:p=\"http://schemas.openxmlformats.org/presentationml/2006/main\">"
+ ""
+ ""
+ ""
+ ""
+ ""
+ "
"
+ ""
+ preset
+ ""
+ "
";
}
java docx4j 使用教程_使用Docx4j操作PPT指南系列(二)相关推荐
- 使用Docx4j操作PPT指南系列(附一)
添加图片XML,记录一下 /** * 图片XML */ private final String imageXml = "<p:pic xmlns:a=\"htt ...
- 使用Docx4j操作PPT指南系列(附二)
pptx 表格定义xml,记录一下 <p:graphicFrame> <p:nvGraphicFramePr> <p:cNvPr id=&q ...
- 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)
黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...
- 遨博机器人展示_遨博协作机器人全系列二:iV系列智能视觉专用插件无缝对接...
原标题:遨博协作机器人全系列二:iV系列智能视觉专用插件无缝对接 2019年9月17日,中国国际工业博览会(CIIF)在上海盛大召开,同期机器人展(RS)已成为亚洲最具影响力的机器人行业会议,是机器人 ...
- 我的世界java版月步教程_《我的世界》月步?幻影剑?大神才会的骚操作 第一个我就跪了!...
你知道<我的世界>玩家之间的差距有多大吗? "咦,我怎么自己动了?"还没看清楚自己怎么被人拉到跟前,敌人的钻石剑已经在方块菌身上戳出了数道伤痕.每次遇到一些操作大神,& ...
- java 坦克大战 教程_[Java教程]坦克大战(一)
[Java教程]坦克大战(一) 0 2016-09-16 08:00:05 坦克大战(一) 相信大家对坦克大战都不陌生,并且网上也有很多用java实现的小程序,最近用了几天时间将其使用javaScri ...
- java后端开发教程_【后端开发】详细讲解JAVA中方法重载概念——简单易懂
1.什么方法重载? 方法的重载指的是方法名一样,但是参数类型不一样 1.1.attack方法重载 有一种英雄,叫做物理攻击英雄 ADHero,为ADHero 提供三种方法. public void a ...
- java web swing 教程_好程序员Java教程解读什么是swing
原标题:好程序员Java教程解读什么是swing 好程序员Java教程解读什么是swing,swing是java GUI应用程序,也就是java做的桌面应用.运行swing程序要求用户电脑上有java ...
- java聚合_Java™ 教程(聚合归纳操作)
聚合归纳操作 聚合操作一节描述了下列操作管道,计算集合roster中所有男性成员的平均年龄: double average = roster .stream() .filter(p -> p.g ...
- java粒子特效教程_使用particles.js实现网页背景粒子特效
得知途径 B3log提供了两套博客系统,一个是用Java开发的,叫做Solo,我也是在网上搜索Java博客系统时发现了它,之后才了解了B3log:还有一个是用Go语言开发的,叫做Pipe.其中Solo ...
最新文章
- 在不锁定表的情况下运行MySQLDump
- 【转载】常用DOS命令(包括创建删除文件夹/文件)
- oracle创建数据库步骤
- boost::describe模块实现pp_call的测试程序
- 牛客题霸 [扑克牌顺子] C++题解/答案
- 安卓学习笔记35:广播接收者
- NYOJ-喷水装置(一)(贪心)
- 分享整理的 Python 学习路线图,(附工具+视频+书籍+面试)
- java读取word内容
- vant显示日期格式_使用Vant完成DatetimePicker 日期的选择器操作
- 巧妙按键法,包含几乎所有可以实现的按键功能(单击,双击,N击,长按等功能)
- 一文搞懂MySQL索引所有知识点(建议收藏)
- Oracle DBA 转行,作为一名oracle dba需要学习的知识
- JavaScript一些优雅小技巧不得不知
- 用vue实现,鼠标悬停放大图片,根据鼠标位置倾斜图片网页源码
- 福昕阅读器文档无法高亮的问题
- python 模块使用(二十九)之xlutils
- 【SpringBoot】最通俗易懂的安全管理机制(Spring Security)
- python编九九乘法表儿歌_python 九九乘法表!小练习
- C++项目 - 负载均衡OJ - 1 - 项目概述