最近开发了一个自定义ppt模板生成ppt的需求,记录一个小demo
官方文档 ppt文档链接
w3c的文档ppt文档
1.首先打入poi的maven依赖

        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency>    <groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.14</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.poi/poi-scratchpad --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.14</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.14</version></dependency>

2.代码示例


//    步骤1 :通过实例化 XMLSlideShow 类创建一个空的演示文稿,如下所示:XMLSlideShow ppt = new XMLSlideShow();String slideWidth = "25.36";String slideHeight = "19.01";
//      设置幻灯片大小ppt.setPageSize(new Dimension(Double.valueOf(Double.valueOf(slideWidth) / 3.53 * 100).intValue(), Double.valueOf(Double.valueOf(slideHeight) / 3.53 * 100).intValue()));
//    步骤2 :使用 getSlideMasters()方法获取幻灯片主题列表。 此后,使用索引选择所需的幻灯片母带,如下所示:XSLFSlideMaster slideMaster = ppt.getSlideMasters().get(0);//可设置母版的
//    这里我们得到的默认幻灯片母版是在幻灯片主数据的第0位置。byte[] bt2 = FileUtils.readFileToByteArray(new File("C:\\Users\\zengjun\\Desktop\\导出ppt图片\\母版.png"));XSLFPictureData idx2 = ppt.addPicture(bt2, XSLFPictureData.PictureType.PNG);XSLFPictureShape picture = slideMaster.createPicture(idx2);//设置母版picture.setAnchor(new Rectangle(0, 0, ppt.getPageSize().width, ppt.getPageSize().height)); //设置母版大小//创建幻灯片XSLFSlide slide1 = ppt.createSlide();String x = "3.45";  //水平位置String y = "12.70"; //垂直位置String w = "12.45"; //宽度String h = "0.50";  //高度XSLFTextBox textBox = slide1.createTextBox();textBox.setAnchor(new Rectangle2D.Double(Double.valueOf(x) / 3.53 * 100, Double.valueOf(y) / 3.53 * 100, Double.valueOf(w) / 3.53 * 100, Double.valueOf(h) / 3.53 * 100));XSLFTextRun textRun = textBox.setText("实际发布:10");textRun.setFontFamily("宋体");textRun.setFontSize(16.0);textRun.setBold(true); //设置粗体状态String x2 = "2.96";  //水平位置String y2 = "13.91"; //垂直位置String w2 = "10.56"; //宽度String h2 = "0.50";  //高度XSLFTextBox textBox2 = slide1.createTextBox();textBox2.setAnchor(new Rectangle2D.Double(Double.valueOf(x2) / 3.53 * 100, Double.valueOf(y2) / 3.53 * 100, Double.valueOf(w2) / 3.53 * 100, Double.valueOf(h2) / 3.53 * 100));/** 生成一个新的文本段落 **/XSLFTextParagraph xslfTextRuns = textBox2.addNewTextParagraph();/** 添加新的文本 **/XSLFTextRun xslfTextRun = xslfTextRuns.addNewTextRun();/** 添加新的文本 **/xslfTextRun.setText("福海信息港");/** 设置字体类型 **/xslfTextRun.setFontFamily("宋体");/** 设置字体大小 **/xslfTextRun.setFontSize(16.0);ppt.write(new FileOutputStream("ppt2.pptx"));

3 效果展示


代码中的红色部分,是我比例算出来的大小


java利用poi生成pptx格式的ppt相关推荐

  1. Java利用poi生成word(包含插入图片,动态表格,行合并)

    Java利用poi生成word(包含插入图片,动态表格,行合并) 测试模板样式: 图表 1 Word生成结果: 图表 2 需要的jar包:(具体jar可自行去maven下载) Test测试类: imp ...

  2. Java利用POI生成Excel强制换行

    前一段时间在做一个学校排课系统时,有一个地方需要利用把课程表生成excel汇出给客户,由于之前用excel都只是简单的应用,在单元格里都是用自动换行,而这次可能需要用到手动强制换行.  于是我在网上找 ...

  3. java利用poi生成/读取excel表格

    1.引入jar包依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</ ...

  4. java利用poi生成excel如何自动换行

    1.首先设置单元格内容自动换行 // 生成一个样式,用于设置内容样式 HSSFWorkbook workbook = new HSSFWorkbook(); HSSFCellStyle cellSty ...

  5. java利用poi导出excel功能-附带图片导出

    java利用poi导出excel功能-附带图片导出 写在前面 最近刚离职,闲来无事,于是把上两家公司都有碰到过的需求但都没有去研究实现:即导出带图片的excel报表.于是就折腾了一下这个功能,研究出来 ...

  6. java利用poi实现Excel考勤报表的输出

    java利用poi实现Excel考勤报表的输出 实现效果 SXSSFWorkbook超大数据导出 标题.表头.内容有样式 可以多个sheet(满65535行数据换新的sheet) 一度为快 maven ...

  7. java利用poi读取excel_java利用POI读取excel文件的方法

    摘要:利用java读取excel文件,读取文件并获取文件中每一个sheet中的值. 一.需要提前导入的包: import java.io.File; import java.io.FileInputS ...

  8. java使用poi生成Excel文件并合并单元格

    java使用poi生成Excel文件并合并单元格        业务需要根据 分管部门 字段进行合并,现在提供一种思路. controller层 @Inject(target = "/inf ...

  9. Java 调用Poi 生成费用报销单Excel

    整个代码有点多,并没有做优化.目前只是为了功能实现.可以直接复制,创建main方法运行 默认一张A4纸,可以存放2个报销单模板. 如果只想一张A4纸,存放一个报销单.可以从分割线以下代码删除掉.其对应 ...

最新文章

  1. php面向对象静态常量,浅谈PHP面向对象编程(四、类常量和静态成员)
  2. java猜数字游戏界面_用java来写一个猜数字游戏,要用到界面
  3. 百度地图API快速调用,一键生成百度地图
  4. 6、日期格式化(DateFormat类和SimpleDateFormat类)
  5. 多个输出用java怎么写_请问用java写程序怎么输出这两个图形
  6. JDK 7的算法和数据结构
  7. eclipse preference没有server_Java Web开发的前期准备工作,部署Tomcat服务器和Server环境创建...
  8. GetDlgItem
  9. thinkphp 内部函数 D()、F()、S()、C()、L()、A()、I()
  10. gc:C语言的垃圾回收库-中文
  11. 【USACO】sprime
  12. u8应用服务器设置eai,用友U8+V15EAI用户使用手册.pdf
  13. 正确的加密存储密码防止被拖库(脱裤)保护用户登录安全
  14. 完全自学C(干货) —— 结构体初识
  15. react native 8081 端口号被占
  16. 如何在Web前端实现CAD图文字全文搜索
  17. 新安装Win10操作系统有必要设置的几个技巧
  18. android中关闭软键盘
  19. 国内哪家公司做网站最好?
  20. 个人面经整理深信服测开

热门文章

  1. 解决 linux du: Argument list too long 参数列表过长的办法
  2. NVIDIA,显卡驱动,CUDA版本之间兼容关系及安装
  3. python正则 两边固定 中间任意字符
  4. 参加情商管理与沟通技巧培训的感受(1)
  5. 孚能科技登陆科创板,全球电池阵营迎来新格局
  6. C++ 共享指针四宗罪
  7. dcoker常用命令
  8. 硬盘上有损坏区域,该如何重新分区
  9. Python3基础,这篇就够了(总结版)
  10. 20200215惠普(HP)星14(R5-3500U)在ubuntu20.04下启动通过dmesg打印的内核信息