POI操作Microsoft Office 之 操作PPT简单示例(附源码)

} catch (IOException e) {

e.printStackTrace();

}

Picture background = new Picture(picIndex);// 设置图片位置

background.setAnchor(new java.awt.Rectangle(0, 0,

ppt.getPageSize().width, ppt.getPageSize().height));

master.addShape(background);

3)创建幻灯片并插入文本

TextBox txt = new TextBox();// 添加文本框

RichTextRun richTextRun = txt.getTextRun().getRichTextRuns()[0];

richTextRun.setFontColor(Color.BLUE);

richTextRun.setText(“这里可以换行\r\n第二行文本”);// setText参数字符串可以包含回车、换行符,但是最后一行不能以\r\n结尾,否则设置的格式没有效果

txt.setAnchor(new java.awt.Rectangle(50, 150, 400, 400));

newSlide.addShape(txt);

savePPTFile(ppt);

4)插入图片,支持多种格式

picIndex = ppt.addPicture(new File(“img/img.jpg”), Picture.JPEG);

Picture jpg = new Picture(picIndex);

jpg.setAnchor(new java.awt.Rectangle(360, 200, 280, 260)); //set image position in the slide

newSlide.addShape(jpg);

5)插入表格

String[][] datas = { { “序号”, “姓名”, “年龄” }, { “1”, “张三”, “30” },

{ “2”, “李四”, “27” } };

Table table = new Table(3, 3); // create a table of 3 rows and 3

// columnsTable

for (int i = 0; i < datas.length; i++) {

for (int j = 0; j < datas[i].length; j++) {

TableCell cell = table.getCell(i, j);

RichTextRun rt = cell.getTextRun().getRichTextRuns()[0];

rt.setFontName(“宋体”);

rt.setFontSize(12);

cell.setVerticalAlignment(TextBox.AnchorMiddle);

cell.setHorizontalAlignment(TextBox.AlignCenter);

cell.setText(datas[i][j]);

if (i == 0) {

cell.setFillColor(Color.GRAY);// 首行背景设置为灰色

}

}

}

Line border = table.createBorder();

border.setLineColor(Color.black);

border.setLineWidth(2.0);

table.setAllBorders(border);

newSlide.addShape(table);

table.moveTo(160, 260);

6)如果是读取已存在的PPT文档则还要用到HSLFSlideShow,下面代码将PPT文件导出为图片(png)格式,如果幻灯片上有中文字符则这些字符的字体需要修改为支持中文的字体(宋体等),否则导出的图片的中文字符不能正常显示

SlideShow ppt = new SlideShow(new HSLFSlideShow(“d:/test/test.ppt”));

Dimension pgsize = ppt.getPageSize();

Slide[] slide = ppt.getSlides();

for (int i = 0; i < slide.length; i++) {

BufferedImage img = new BufferedImage(pgsize.width, pgsize.height,BufferedImage.TYPE_INT_RGB);

Graphics2D graphics = img.createGraphics();

graphics.setPaint(Color.white);// clear the drawing area

graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width,

pgsize.height));

slide[i].draw(graphics);

FileOutputStream out = new FileOutputStream(“png/slide-” + (i + 1)

  • “.png”);

javax.imageio.ImageIO.write(img, “png”, out);

out.close();

7)提取PPT文档信息

SlideShow ppt = new SlideShow(new HSLFSlideShow(“ppt/testppt.ppt”));

Slide[] slides = ppt.getSlides();// 提取文本信息

for (Slide each : slides) {

System.out.println(each.getTitle());

TextRun[] textRuns = each.getTextRuns();

for (int i = 0; i < textRuns.length; i++) {

System.out.println(textRuns[i].getText());

RichTextRun[] richTextRuns = textRuns[i].getRichTextRuns();

for (int j = 0; j < richTextRuns.length; j++) {

System.out.println(richTextRuns[j].getText());

}

}

}// 提取所有JPEG图片

PictureData[] picDatas = ppt.getPictureData();

for (int i = 0; i < picDatas.length; i++) {

if (picDatas[i].getType() == Picture.PNG) {

FileOutputStream out = new FileOutputStream(“jpg/jpg_” + i + “.jpg”);

ppt.write(out);

out.close();

}

}

8)设置PPT文档摘要信息(文档点击鼠标右键查看属性)

最后

分享一套我整理的面试干货,这份文档结合了我多年的面试官经验,站在面试官的角度来告诉你,面试官提的那些问题他最想听到你给他的回答是什么,分享出来帮助那些对前途感到迷茫的朋友。

面试经验技巧篇
  • 经验技巧1 如何巧妙地回答面试官的问题
  • 经验技巧2 如何回答技术性的问题
  • 经验技巧3 如何回答非技术性问题
  • 经验技巧4 如何回答快速估算类问题
  • 经验技巧5 如何回答算法设计问题
  • 经验技巧6 如何回答系统设计题
  • 经验技巧7 如何解决求职中的时间冲突问题
  • 经验技巧8 如果面试问题曾经遇见过,是否要告知面试官
  • 经验技巧9 在被企业拒绝后是否可以再申请
  • 经验技巧10 如何应对自己不会回答的问题
  • 经验技巧11 如何应对面试官的“激将法”语言
  • 经验技巧12 如何处理与面试官持不同观点这个问题
  • 经验技巧13 什么是职场暗语

面试真题篇
  • 真题详解1 某知名互联网下载服务提供商软件工程师笔试题
  • 真题详解2 某知名社交平台软件工程师笔试题
  • 真题详解3 某知名安全软件服务提供商软件工程师笔试题
  • 真题详解4 某知名互联网金融企业软件工程师笔试题
  • 真题详解5 某知名搜索引擎提供商软件工程师笔试题
  • 真题详解6 某初创公司软件工程师笔试题
  • 真题详解7 某知名游戏软件开发公司软件工程师笔试题
  • 真题详解8 某知名电子商务公司软件工程师笔试题
  • 真题详解9 某顶级生活消费类网站软件工程师笔试题
  • 真题详解10 某知名门户网站软件工程师笔试题
  • 真题详解11 某知名互联网金融企业软件工程师笔试题
  • 真题详解12 国内某知名网络设备提供商软件工程师笔试题
  • 真题详解13 国内某顶级手机制造商软件工程师笔试题
  • 真题详解14 某顶级大数据综合服务提供商软件工程师笔试题
  • 真题详解15 某著名社交类上市公司软件工程师笔试题
  • 真题详解16 某知名互联网公司软件工程师笔试题
  • 真题详解17 某知名网络安全公司校园招聘技术类笔试题
  • 真题详解18 某知名互联网游戏公司校园招聘运维开发岗笔试题

资料整理不易,点个关注再走吧

笔试题

  • 真题详解13 国内某顶级手机制造商软件工程师笔试题
  • 真题详解14 某顶级大数据综合服务提供商软件工程师笔试题
  • 真题详解15 某著名社交类上市公司软件工程师笔试题
  • 真题详解16 某知名互联网公司软件工程师笔试题
  • 真题详解17 某知名网络安全公司校园招聘技术类笔试题
  • 真题详解18 某知名互联网游戏公司校园招聘运维开发岗笔试题

[外链图片转存中…(img-D4gRzeJ7-1714437619587)]

资料整理不易,点个关注再走吧

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 14
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值