poi版本3.14.

根据poi的demo写了个简单的生成ppt的例子:

[java] view plaincopy
  1. public static void makePpt(String path) throws Exception {
  2. if (path == null) {
  3. path = "e:/text.pptx";
  4. }
  5. XMLSlideShow ppt = new XMLSlideShow();
  6. XSLFSlide slide1 = ppt.createSlide();
  7. XSLFTextBox shape1 = slide1.createTextBox();
  8. Rectangle anchor = new Rectangle(10, 100, 300, 100);
  9. shape1.setAnchor(anchor);
  10. XSLFTextParagraph p1 = shape1.addNewTextParagraph();
  11. XSLFTextRun r1 = p1.addNewTextRun();
  12. r1.setFontColor(new Color(0, 200, 160));
  13. shape1.setFillColor(Color.red);
  14. r1.setText("text1");
  15. XSLFTextBox shape2 = slide1.createTextBox();
  16. Rectangle anchor2 = new Rectangle(210, 200, 300, 100);
  17. shape2.setAnchor(anchor2);
  18. shape2.setText("text2");
  19. FileOutputStream out = new FileOutputStream(path);
  20. ppt.write(out);
  21. out.close();
  22. ppt.close();
  23. }

发现text1的文本框多了一个空行。text2文本框没有多空行。

使用如下代码看看到底生成了什么东西:

[java] view plaincopy
  1. public static void readPpt() throws Exception {
  2. XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("e:/text.pptx"));
  3. XSLFSlide slide1 = ppt.getSlides().get(0);
  4. for (XSLFShape shape : slide1.getShapes()) {
  5. if (shape instanceof XSLFTextBox) {
  6. XSLFTextBox box = (XSLFTextBox) shape;
  7. java.util.List<XSLFTextParagraph> ps = box.getTextParagraphs();
  8. if (ps.size() > 0) {
  9. java.util.List<XSLFTextRun> rs = ps.get(0).getTextRuns();
  10. if (!rs.isEmpty()) {
  11. System.out.println(rs.get(0).getRawText());
  12. }
  13. }
  14. }
  15. }
  16. }

发现shape1的那个XSLFTextBox其实有两个XSLFTextParagraph对象。

查看相应的代码,问题应该是出在XSLFTextParagraph p1 = shape1.addNewTextParagraph();这一句。原因应该是XSLFTextBox本身就有一个TextParagraph了。

这一行代码改成:

[java] view plaincopy
  1. XSLFTextParagraph p1 =shape1.getTextParagraphs().isEmpty() ?
  2. shape1.addNewTextParagraph() : shape1.getTextParagraphs().get(0);

就可以了。

poi操作ppt生成文本框相关推荐

  1. poi操作ppt生成图表

    POI版本3.14 操作ppt的HSLF中没有找到操作图表的类. 操作pptx的XSLF中有操作图表的类:org.apache.poi.xslf.usermodel.XSLFChart. ppt页面( ...

  2. java使用poi操作ppt(导入,导出,读取,添加,拼接,替换文本,页面排序)

    POI操作PPT文档(导入,导出,读取,添加,拼接,替换文本,页面排序) 注意:直接读取.pptx文件时不能使用${user}这样的作为替换标识,在读取.pptx文件时会解析成三段文本"${ ...

  3. html文本框颜色填充颜色设置,PPT怎样给文本框填充颜色 PPT给文本框填充颜色的操作内容...

    最近有很多朋友向我咨询关于PPT怎样给文本框填充颜色的问题,今天就为大家介绍PPT给文本框填充颜色的操作内容,希望能够帮助到大家. PPT怎样给文本框填充颜色 PPT给文本框填充颜色的操作内容 打开P ...

  4. html文本框超出范围,ppt出现文本框中输入文字超出文本框范围的详细操作

    今天小编讲解了在ppt出现文本框中输入文字超出文本框范围步骤,下文就是关于ppt出现文本框中输入文字超出文本框范围的教程,一起来学习吧. ppt出现文本框中输入文字超出文本框范围的详细操作 首先,打开 ...

  5. poi操作PPT文档总结

    POI操作PPT文档1 注意ppt模板不能使用${user}--这样的作为替换标识,在读取PPT模板时会解析成三段文本1.${ 2.user  3.},而一般在控件中使用%1$S这样的方式做为替换标识 ...

  6. java poi 操作ppt

    java poi 操作ppt 可以参考: https://www.w3cschool.cn/apache_poi_ppt/apache_poi_ppt_installation.html http:/ ...

  7. Java使用poi操作ppt

    Java使用poi操作ppt https://editor.csdn.net/md/?articleId=117926694 上一篇中写了操作文本框和插入图片 这一篇主要是如何在有模板的情况下如替换文 ...

  8. 如何在PPT中用文本框制作海报?这个方法很简单,不信来看

    PPT里还能用文本框制作海报,你知道吗?很多朋友可能觉得很诧异,一般大家做海报都是用PS来制作,可是PS的操作有点复杂,还是一个细致活,急躁的朋友可能做着做着就没耐心了,不过这个也不妨碍制作海报,直接 ...

  9. poi操作ppt图表史上最完整示例演示

    poi操作ppt图表史上最完整示例演示和内嵌excel的获取添加数据简单示例 ,POI3.15版本. 在模板中构造几中基本图表进行测试就行了. 完整下载地址:http://download.csdn. ...

最新文章

  1. 【算法系列】一道面试算法题
  2. 经济书籍:世界是平的
  3. python002 一 eg: Python 入门技巧__环境搭建__git使用、git本地操作、 自建gitlab服务器
  4. 【ZOJ - 3870】Team Formation(异或,思维)
  5. 最佳实践:使用负载均衡SLB IPv6搞定苹果AppStore审核
  6. 自定义按钮 图片标题位置随意放置
  7. 冬季,拿什么来温暖你的心情
  8. 资源管理器停止工作,自动重启
  9. SQL SERVER数据库设计与现实
  10. 「一道面试题」ArrayList和LinkedList有什么区别及使用场景
  11. Juniper告诉你如何给管理做“减法”,让安全更加分
  12. python3中filter、map、reduce、apply、zip函数用法总结
  13. Win软件 - Listary
  14. 用注册机破解navicat12
  15. python 恢复删除的文件_如何恢复已删除的python文件(一看就会的恢复软件)
  16. 阿里巴巴JAVA代码规范三【考题】
  17. stimulsoft入门教程:报表与页面上的图表(一)
  18. w10能装inventor2019_Inventor2019下载
  19. 为什么我不建议你去外包公司?
  20. 实验四+163+张玉洁

热门文章

  1. 研究生论文致谢频用诗词!导师:摘要都写不通你还敢搞文学?
  2. linux中查看ftp所有用户,怎么查看linux下的所有用户
  3. 基于Android手机汽车租赁系统app
  4. python:素数伴侣
  5. 互联网公司寄件管理教程
  6. iOS 单个app最大可以获得多少运行内存
  7. 全国青少年信息素养大赛图形化编程初赛·模拟三卷,含答案解析
  8. POSIX 文件能力:分配根用户的能力
  9. Linux下修改MySQL密码
  10. ORACLE dbca执行到40%报错之ORA-12154