POI操作ppt,合并,转图片

2023-11-09

 

引入POI

compile group: 'org.apache.poi', name: 'poi-ooxml', version: '4.1.0' 
compile group: 'batik', name: 'batik-bridge', version: '1.6-1' 
compile group: 'org.apache.xmlgraphics', name: 'batik-anim', version: '1.11'

 

/**
 * https://www.w3cschool.cn/apache_poi_ppt/apache_poi_ppt_to_image.html
 */
@Test
public void testMerge() throws Exception{
    String file1 = "E:\\pptmerge\\x1.pptx";
    String file2 = "E:\\pptmerge\\x2.pptx";

    FileInputStream is = new FileInputStream(file1);
    XMLSlideShow src = new XMLSlideShow(is);
    is.close();
    FileInputStream is2 = new FileInputStream(file2);
    XMLSlideShow src2 = new XMLSlideShow(is2);
    is2.close();

    XMLSlideShow ppt = new XMLSlideShow();
    for (XSLFSlide slide : src.getSlides()) {
        XSLFSlide slide1 = ppt.createSlide(slide.getSlideLayout());
        slide1.importContent(slide);
    }
    for (XSLFSlide slide : src2.getSlides()) {
        XSLFSlide slide1 = ppt.createSlide(slide.getSlideLayout());
        slide1.importContent(slide);
    }

    FileOutputStream out = new FileOutputStream("E:\\pptmerge\\merged2.pptx");
    ppt.write(out);
    out.close();
    System.out.println("merge successfully");
}
@Test
public void testPic() throws Exception{
    BufferedImage img = new BufferedImage(100, 100,BufferedImage.TYPE_INT_RGB);
    img.createGraphics().draw3DRect(0,0,120,100,true);
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    ImageIO.write(img,"png",out);

    XMLSlideShow ppt = new XMLSlideShow();
    XSLFSlide slide = ppt.createSlide();
    XSLFPictureData pictureData = ppt.addPicture(out.toByteArray(), XSLFPictureData.PictureType.PNG);
    XSLFPictureShape picture = slide.createPicture(pictureData);

    File file=new File("E:\\pptmerge\\pic.pptx");
    FileOutputStream outppt = new FileOutputStream(file);

    //saving the changes to a file
    ppt.write(outppt);
    out.close();
    System.out.println("image successfully");
}

@Test
public void testCreatePicFromPPT() throws Exception{
    //creating an empty presentation
    File file=new File("E:\\pptmerge\\ppt.pptx");
    XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

    //getting the dimensions and size of the slide
    Dimension pgsize = ppt.getPageSize();
    List<XSLFSlide> slides = ppt.getSlides();

    XMLSlideShow pptout = new XMLSlideShow();

    for (int i = 0; i < slides.size(); i++) {
        XSLFSlide xslfShapes = slides.get(i);
        BufferedImage img = new BufferedImage(pgsize.width, pgsize.height,BufferedImage.TYPE_INT_RGB);
        Graphics2D graphics = img.createGraphics();

        //clear the drawing area
        //graphics.setPaint(Color.white);
        //graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));

        //render
        xslfShapes.draw(graphics);

        ByteArrayOutputStream out = new ByteArrayOutputStream();
        ImageIO.write(img,"png",out);

        XSLFSlide slide = pptout.createSlide();
        XSLFPictureData pictureData = pptout.addPicture(out.toByteArray(), XSLFPictureData.PictureType.PNG);
        XSLFPictureShape picture = slide.createPicture(pictureData);
    }

    //creating an image file as output
    FileOutputStream out = new FileOutputStream("E:\\pptmerge\\testCreatePicFromPPT.pptx");
    pptout.write(out);

    out.close();
    System.out.println("Image successfully created");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

POI操作ppt,合并,转图片 的相关文章

  • 这样做框架结构图,让你的PPT更有创意!

    已剪辑自 https zhuanlan zhihu com p 58834710 嗨 xff0c 各位木友们好呀 xff0c 我是小木 昨天 xff0c 有个跟我一样鸟人的鸟人让我帮忙做个框架结构图 xff1a 可惜当时我不在办公室 xff
  • 这次把怎么做好一个PPT讲清-演讲篇

    商务演讲与汇报 一 目标 xff1a 演讲必须有清晰的目标 演讲 xff1a 影响他人发生积极的 改变 注意 xff0c 目标就要设定的影响听众在听完你的演讲后发生积极的改变 xff1b 例 xff1a 5月初向领导做月度工作汇报 让领导在
  • 舍选法抽样matlab,舍选抽样方法.ppt

    舍选抽样方法 ppt 3 5 舍选抽样法 3 5 舍选抽样法 3 5 舍选抽样法 第三章 从概率分布函数的抽样 Sampling from Probability Distribution Functions Monte Carlo模拟 3
  • 鼠标悬停效果 PPT制作

    鼠标悬停效果实现 在制作PPT时 xff0c 有时候需要实现鼠标的悬停效果 xff0c 即将鼠标放置在某个按钮或图片上 xff0c 实现动态变化的效果 目标是 xff1a 当鼠标悬停在一些人物名字上时 xff0c 出现该人物的个人信息 具体
  • Java实现excel导出功能的几种方法——poi、easyExcel、easypoi、jxl

    推荐使用easyExcel 简单好用 对于稍微复杂一点的表格 个人建议用jxl easypoi 以下代码中包含的操作 合并单元格 设置字体格式 加粗 字体大小 颜色 设置单元格格式 居中 边框 背景颜色 填充数据 一 jxl jxl jxl
  • java读取excel中的数据(包括.xlsx和.xls)

    java读取excel中的数据 包括 xlsx和 xls java读取excel文件中的数据常用jxl和poi两种方式 其中最主要的区别在于jxl不支持 xlsx 而poi支持 小编平时用的比较多的是poi的方式 所以今天小编介绍的也是po
  • 梁乾东:4.29黄金震荡暴涨还能持续上升吗?黄金原油独家策略解析

    消息面解析 现货黄金周3走出V型行情 先是跌破1770美元 晚间开始回升 美联储决议后 黄金短线上涨至1780美元 日内现货白银呈现震荡走势 凌晨短暂上涨后跌幅较大 截至收盘 现货黄金上涨0 28 报1781 20美元 盎司 现货白银跌0
  • EasyPoi导出Excel

    这几天一直在忙工作中的事情 在工作中有一个问题 可能是因为刚开始接触这个EasyPoi 对其也没有太多的理解 在项目中就使用了 有一个需求 是要导出项目中所有的表格 今天就对这个需求进行分析和实现吧 需求 导出项目中所有的表格 导出文件为E
  • 14款国内外精品PPT模板网站对比介绍

    简介 在平日的学习和工作中 我们经常需要制作幻灯片 通过PPT模板和素材库可以帮助我们快速设计出符合心意的幻灯片 本文对14个国内外高质量PPT模板网站进行简单的对比分析 希望对您有所帮助 国内PPT模板网站 1 SlideLive 网站地
  • 打造高质量视频,创造视觉奇观!Camtasia 2023为你升级!

    嘿 伙计 在这个全新版本中 我们迎来了焕然一新的动画控制和更简化的特效制作流程 让创作变得更高效 不仅如此 全新的背景去除和动画光标功能也让视频拥有全新的视觉体验 让我们先谈谈光标 这个细节或许被忽视 却能让您的录屏更显个性 Camtasi
  • java.io.IOException: Invalid header signature; rea

    异常 java io IOException Invalid header signature read 4503608217567241 expected 2226271756974174256 資料來源 http hi baidu co
  • Poi实现Excel导出

    Poi实现Excel导出 Appache Poi提供了HSSFWorkbook操作2003版本的Excel文件 XSSFWorkbook操作2007版Excel文件 简单的具体实现在网上有很多案例可以参考学习 我就不写入门案例了 下面我会将
  • java poi导入Excel、导出excel

    java poi导入Excel 导出excel 导出meven架包
  • 利用PPT、Excel实现抽题

    利用PPT Excel实现随机抽题 教程 附文件 不管是在公司 还是学校 PPT Excel已经成为不可缺少的一种工具 在各种活动中 有很多场合需要利用PPT实现随机抽题 本文将为你详细 详细 详细的教你如何使用PPT Excel实现随机抽
  • POI Excel 基础(一)

    POI 5 2 3 官网 github POI HSSF and POI XSSF SXSSF 用于访问Microsoft Excel格式文件的Java API HSSF 是Horrible SpreadSheet Format的缩写 也即
  • java读取含有合并行的excel

    excel格式如下 代码如下 package com example demo excel import org apache poi hssf usermodel HSSFWorkbook import org apache poi ss
  • SlideLive:免费的PPT模板网站

    简介 在平时的学习和工作中 我们经常需要使用到PPT模板 包括课程报告 团体活动等 本文给大家介绍一款免费的PPT模板的网站 SlideLive 官网地址 https www slidelive cn SlideLive
  • Java准确获取Word/Excel/PPT/PDF的页数(附Word页数读不准的处理办法)

    Java准确获取Word Excel PPT PDF的页数 附Word页数读不准的处理办法 1 需求背景 2 环境准备工作 2 1 JACOB介绍及安装 2 2 Microsoft Office Word的设置 3 代码 3 1 代码示例
  • 【Java基础】 使用POI解析excel时格式判定问题及解决方案

    写在前面 本文主要介绍在实际开发过程中使用POI工具类去解析Excel格式文件遇到的问题引发的思考 学习以及解决方案 仅供参考 有考虑不周的地方还请指正 问题描述 博主在做excel解析的时候 遇到了一个奇怪的现象 xlsx拓展名的文件使用
  • POI及EasyExcel-读写示例

    POI

随机推荐

  • C语言提取一列数据并保存

    c语言求教 txt文档只有一列数据但是有很多 需要把它提取出来 每1024个数保存在一个文件中 求大神指教 c语言
  • 什么时候需要使用引用?使用引用的好处是什么?

    作者 谢之易 链接 https www zhihu com question 34267829 answer 58414818 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 记忆里 C 的设计与演化 一书提
  • 【华为机试真题 Python实现】仿 LISP 运算【2022 Q1 Q2

    题目描述 LISP 语言唯一的语法就是括号要配对 形如 OP P1 P2 括号内元素由单个空格分割 其中第一个元素 OP 为操作符 后续元素均为其参数 参数个数取决于操作符类型 注意 参数 P1 P2 也有可能是另外一个嵌套的 OP P1
  • 语音识别-初识

    ASRT https blog ailemon net 2018 08 29 asrt a chinese speech recognition system ASR Automatic Speech Recognition Paddle
  • 计算机加入域的一种方法

    重装系统后 想把机子加入域 却总是不成功 隐约记得以前老大们讲过 厚着脸皮问了 o 之后 决定记下来 省的我以后又忘了 计算机加入域 一 在网络中加入DNS地址 二 step 1 更改计算机名字 右键点击 我的电脑 打开 属性 页面 找到
  • redis-benchmark测试Redis集群性能

    基础环境配置 Redis5 三主三从cluster 1 100个并发连接 100000个请求 检测host为172 16 254 124端口为7004的redis服务器性能 redis benchmark h 172 16 254 124
  • C# 单例模式详解

    定义 单例模式是比较常见的一种设计模式 目的是保证一个类只能有一个实例 而且自行实例化并向整个系统提供这个实例 避免频繁创建对象 节约内存 单例模式的应用场景很多 比如我们电脑的操作系统的回收站就是一个很好的单例模式应用 电脑上的文件 视频
  • 2023年大唐杯仿真部分-5G信令流程仿真实验

    参考视频连接 第十届大唐杯信令流程仿真讲解 哔哩哔哩 bilibili 1 5G系统消息的获取 根据题目要求 UE开机需要获取消息 消息分别是MIB SIB1 SIB2 SIB3 上面为什么选的是SIB1 Systeminformation
  • 如何判断一个指定的经纬度点是否落在一个多边形内

    1 理论支持 如果从需要判断的点出发的一条射线与该多边形的焦点个数为奇数 则该点在此多边形内 否则该点在此多边形外 射线不能与多边形顶点相交 2 编程思路 该程序的思路是从A点出发向左做一条水平射线 平行于x轴 向X轴的反方向 判断与各边是
  • Golang实现一个事务型内存数据库

    内存数据库经我们经常用到 例如Redis 那么如何从零实现一个内存数据库呢 本文旨在介绍如何使用Golang编写一个KV内存数据库MossDB 特性 MossDB是一个纯Golang编写 可嵌入的 键值型内存数据库 包含以下特性 可持久化
  • 【spring】spring 的事务(transaction) 三 try catch对事务的影响

    文章目录 概述 1 非异常用例 1 1 创建工程 1 2 执行 2 内层抛出非check异常 外层进行捕获 3 内层抛出非check异常 外层不进行捕获 相关文章 spring 的事务 transaction 一 基础概念介绍 spring
  • 群晖NAS如何在内网部署HTTPS服务让浏览器信任证书

    前言 最近在折腾内部部署Web服务 通过Vue实现一个H5的内部的管理服务 但在实际部署过程中由于种种原因 必须部署成Https服务 但在部署成Https服务后 由于没有HTTPS证书 每次进入页面都会被浏览器拦截 使用起来非常不便 于是开
  • Pandas 过滤dataframe中包含特定字符串的数据

    假如有一列全是字符串的dataframe 希望提取包含特定字符的所有数据 该如何提取呢 因为之前尝试使用filter 发现行不通 最终找到这个行得通的方法 举例说明 我希望提取所有包含 Mr 的人名 1 首先将他们进行字符串化 并得到其对应
  • 国内iso镜像站点

    http mirrors aliyun com centos
  • vue小项目实战

    项目概念图 devWebpackConfig plugins push new FriendlyErrorsPlugin compilationSuccessInfo messages Your application is running
  • shopify网站如何提高视觉冲击力

    1 首屏使用视频 2 页面引入酷炫动画 3 使用对比强烈的色彩
  • CSS-定位-背景图

    定位 背景图 一 定位 position 1 相对定位 relative 2 绝对定位 absolute 3 固定定位 fixed 4 定位练习 二 背景图 background 1 属性 2 实例一 3 背景图定位 4 雪碧图的使用 三
  • 12款很赞的web前端移动开发框架

    原生移动应用程序运行更快 更顺畅 有更好的用户体验 而同时 前端开发人员总是寻找新的 Web 技术来获得这种性能 利用现有的高质量移动框架来构建移动 Web 应用程序已成为非常容易 但是如何选择合适的框架是比较纠结的 因此在本文中 我们整理
  • 刷简单的题也很吃力怎么办?

    文章目录 一 分享自己相关的经历 1 1 刷简单题目感到吃力的原因 1 2 解决该问题的重要性和目的 二 分析可能存在的问题 三 根据问题进行分解或建立思维导图 四 分享好用的刷题网站并进行介绍 明明自觉学会了不少知识 可真正开始做题时 却
  • POI操作ppt,合并,转图片

    引入POI compile group org apache poi name poi ooxml version 4 1 0 compile group batik name batik bridge version 1 6 1 comp