poi操作ppt生成文本框
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);
就可以了。
poi操作ppt生成文本框相关推荐
- poi操作ppt生成图表
POI版本3.14 操作ppt的HSLF中没有找到操作图表的类. 操作pptx的XSLF中有操作图表的类:org.apache.poi.xslf.usermodel.XSLFChart. ppt页面( ...
- java使用poi操作ppt(导入,导出,读取,添加,拼接,替换文本,页面排序)
POI操作PPT文档(导入,导出,读取,添加,拼接,替换文本,页面排序) 注意:直接读取.pptx文件时不能使用${user}这样的作为替换标识,在读取.pptx文件时会解析成三段文本"${ ...
- html文本框颜色填充颜色设置,PPT怎样给文本框填充颜色 PPT给文本框填充颜色的操作内容...
最近有很多朋友向我咨询关于PPT怎样给文本框填充颜色的问题,今天就为大家介绍PPT给文本框填充颜色的操作内容,希望能够帮助到大家. PPT怎样给文本框填充颜色 PPT给文本框填充颜色的操作内容 打开P ...
- html文本框超出范围,ppt出现文本框中输入文字超出文本框范围的详细操作
今天小编讲解了在ppt出现文本框中输入文字超出文本框范围步骤,下文就是关于ppt出现文本框中输入文字超出文本框范围的教程,一起来学习吧. ppt出现文本框中输入文字超出文本框范围的详细操作 首先,打开 ...
- poi操作PPT文档总结
POI操作PPT文档1 注意ppt模板不能使用${user}--这样的作为替换标识,在读取PPT模板时会解析成三段文本1.${ 2.user 3.},而一般在控件中使用%1$S这样的方式做为替换标识 ...
- java poi 操作ppt
java poi 操作ppt 可以参考: https://www.w3cschool.cn/apache_poi_ppt/apache_poi_ppt_installation.html http:/ ...
- Java使用poi操作ppt
Java使用poi操作ppt https://editor.csdn.net/md/?articleId=117926694 上一篇中写了操作文本框和插入图片 这一篇主要是如何在有模板的情况下如替换文 ...
- 如何在PPT中用文本框制作海报?这个方法很简单,不信来看
PPT里还能用文本框制作海报,你知道吗?很多朋友可能觉得很诧异,一般大家做海报都是用PS来制作,可是PS的操作有点复杂,还是一个细致活,急躁的朋友可能做着做着就没耐心了,不过这个也不妨碍制作海报,直接 ...
- poi操作ppt图表史上最完整示例演示
poi操作ppt图表史上最完整示例演示和内嵌excel的获取添加数据简单示例 ,POI3.15版本. 在模板中构造几中基本图表进行测试就行了. 完整下载地址:http://download.csdn. ...
最新文章
- 【算法系列】一道面试算法题
- 经济书籍:世界是平的
- python002 一 eg: Python 入门技巧__环境搭建__git使用、git本地操作、 自建gitlab服务器
- 【ZOJ - 3870】Team Formation(异或,思维)
- 最佳实践:使用负载均衡SLB IPv6搞定苹果AppStore审核
- 自定义按钮 图片标题位置随意放置
- 冬季,拿什么来温暖你的心情
- 资源管理器停止工作,自动重启
- SQL SERVER数据库设计与现实
- 「一道面试题」ArrayList和LinkedList有什么区别及使用场景
- Juniper告诉你如何给管理做“减法”,让安全更加分
- python3中filter、map、reduce、apply、zip函数用法总结
- Win软件 - Listary
- 用注册机破解navicat12
- python 恢复删除的文件_如何恢复已删除的python文件(一看就会的恢复软件)
- 阿里巴巴JAVA代码规范三【考题】
- stimulsoft入门教程:报表与页面上的图表(一)
- w10能装inventor2019_Inventor2019下载
- 为什么我不建议你去外包公司?
- 实验四+163+张玉洁