用poi的XSLF创建ppt,添加文本的时候多了空行
来源:互联网 发布:sql存储过程怎么写 编辑:程序博客网 时间:2024/05/17 04:31
poi版本3.14.
根据poi的demo写了个简单的生成ppt的例子:
public static void makePpt(String path) throws Exception { if (path == null) { path = "e:/text.pptx"; } XMLSlideShow ppt = new XMLSlideShow(); XSLFSlide slide1 = ppt.createSlide(); XSLFTextBox shape1 = slide1.createTextBox(); Rectangle anchor = new Rectangle(10, 100, 300, 100); shape1.setAnchor(anchor); XSLFTextParagraph p1 = shape1.addNewTextParagraph(); XSLFTextRun r1 = p1.addNewTextRun(); r1.setFontColor(new Color(0, 200, 160)); shape1.setFillColor(Color.red); r1.setText("text1"); XSLFTextBox shape2 = slide1.createTextBox(); Rectangle anchor2 = new Rectangle(210, 200, 300, 100); shape2.setAnchor(anchor2); shape2.setText("text2"); FileOutputStream out = new FileOutputStream(path); ppt.write(out); out.close(); ppt.close(); }发现text1的文本框多了一个空行。text2文本框没有多空行。
使用如下代码看看到底生成了什么东西:
public static void readPpt() throws Exception { XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("e:/text.pptx")); XSLFSlide slide1 = ppt.getSlides().get(0); for (XSLFShape shape : slide1.getShapes()) { if (shape instanceof XSLFTextBox) { XSLFTextBox box = (XSLFTextBox) shape; java.util.List<XSLFTextParagraph> ps = box.getTextParagraphs(); if (ps.size() > 0) { java.util.List<XSLFTextRun> rs = ps.get(0).getTextRuns(); if (!rs.isEmpty()) { System.out.println(rs.get(0).getRawText()); } } } } }
发现shape1的那个XSLFTextBox其实有两个XSLFTextParagraph对象。
查看相应的代码,问题应该是出在XSLFTextParagraph p1 = shape1.addNewTextParagraph();这一句。原因应该是XSLFTextBox本身就有一个TextParagraph了。
这一行代码改成:
XSLFTextParagraph p1 =shape1.getTextParagraphs().isEmpty() ? shape1.addNewTextParagraph() : shape1.getTextParagraphs().get(0);
就可以了。
0 0
- 用poi的XSLF创建ppt,添加文本的时候多了空行
- poi操作ppt添加带编号的文本框
- linux去除文本的空行
- POI解析Excel【poi的坑——空行处理】
- vim 将文本中连续的多个空行删除为只留一下一个空行
- PPT中的自动缩略图效果(当要用一张ppt展示多个图片的时候)
- 用sed清除文本的空行和行首空格
- 去除文本中的空行的bash命令
- 测试文本中可能出现的空行
- poi操作ppt添加超链接
- php 的ajax返回值无缘无故多了很多空行
- 通过poi 生成ppt的缩略图
- poi操作ppt创建表格
- java excel poi导入 过滤空行的方法 判断是否是空行
- 关于单个字符(%c)用scanf输入的错误(多了空行出来)
- 创建带有表格的PPT
- 创建表的时候要添加目标语句use
- oracle 在创建表的时候添加注释
- Java的八大基本类型
- Android Fragment应用实战(音乐播放器界面)
- [已解决]Android studio git报错 could not read from remote repository
- Centos 文件存储目录容量扩展
- JAVA学习笔记——运行我的第一个程序(day01)
- 用poi的XSLF创建ppt,添加文本的时候多了空行
- spring mvc 自定义方法拦截器
- 第1章 语言处理与Python
- iOS之——UIWebView无法显示问题
- 广东海洋大学 电子1151 孔yanfei python语言程序设计 第二周
- Java中的线程执行器总结
- 网络编程---UDP
- 新浪云SAE---git配置
- 使用Cognos 构建IT驱动的自助式分析