使用 Apache poi 将 ppt 转换为 png

2023-12-07

您好,我正在尝试使用 Apache Poi 框架将 ppt 的每张幻灯片转换为单独的 png。问题是有些幻灯片变形了。例如,有一张幻灯片的背景是彩虹色。某些幻灯片上的图像根本不会出现在 .png 文件中

这是代码:

        FileInputStream is = new FileInputStream(args[0]);

        SlideShow ppt = new SlideShow(is);


        is.close();

        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();
        //clear the drawing area
        graphics.setPaint(Color.white);
        graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));

        //render
        slide[i].draw(graphics);

        //save the output
        FileOutputStream out = new FileOutputStream("C:\\Users\\Farzad\\Desktop\\slide-" + (i+1) + ".png");
        javax.imageio.ImageIO.write(img, "png", out);
        out.close();
        }

为此,我们不必使用:

graphics.setPaint(Color.white);

而是使用:

graphics.setPaint(
    slideShow.getSlides()[0].getBackground().getFill().getForegroundColor()
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Apache poi 将 ppt 转换为 png 的相关文章

随机推荐

  • Python:派生类访问同一内存位置中基类的字典

    我想知道为什么在基类中定义并从派生类访问的字典显然只存在于一个内存位置 一个简短的例子 class BaseClass testdict dict testint 0 def add dict entry self self testdic
  • MPMoviePlayerController 添加 UIButton 以随控件淡出的视图

    我正在尝试将 UIButton 添加到MP电影播放器 控制器以及标准控件 该按钮出现在视频上 并按预期接收触摸事件 但我希望它使用标准控件淡入和淡出 以响应用户触摸 我知道我可以通过滚动自己的自定义播放器控件来实现这一目标 但这似乎很愚蠢
  • 无法在 Mac OS 上使用 android sdk 创建 AVD

    我在Mac操作系统上安装了Android Studio和JDK1 8 我跟着说明并使用 API 15 作为最低 sdk 创建了一个新应用程序 我尝试从 AVD 管理器创建 AVD 通过选择创建新虚拟设备 gt nexus 6 gt loll
  • Python 中自增和自减运算符的行为

    如何使用预自增 自减运算符 就像在 C 中一样 为什么 count运行 但不改变变量的值 不是运营商 是两个 运营商 这 运算符是identity运算符 它什么也不做 澄清 and 一元运算符仅适用于数字 但我认为您不会期望假设的 操作符来
  • 使用 .htaccess 文件扩展名删除程序代码时,网站表单不携带任何值

    我在 HTACCESS 文件中有这段代码 它工作正常 因为它删除了 php 文件扩展名 它还允许加载没有扩展名的页面 For security reasons Option followsymlinks cannot be overridd
  • 在x86(32位)Linux上启动x86_64代码,在x86_64 CPU上运行

    是否可以在 i686 Linux x86 32 位 上启动 x86 64 代码 我的 CPU 是现代 Core 2 它本身可以运行 x86 64 64 位代码 但操作系统是 32 位 启动的代码是纯数学的 几乎不需要与操作系统交互 我想测量
  • 理解 C 中的 Char 数组相等

    提前为我的无知表示歉意 我不完全理解如何比较 C 中的 char 数组 我最初是用简单的方法比较 c 中的两个 char 数组 操作员 所以在 C 函数中 我会做这样的事情 char a test char b test if a b do
  • log4j2 JsonTemplateLayout 无法与 Maven 阴影插件一起使用

    我正在尝试使用 log4j2 JsonTemplateLayout 以 LogstashJsonEventLayoutV1 json 作为模板生成 Json 格式的日志 当我使用 intellij 运行代码时 一切都按预期工作 但是使用 j
  • 如何在Python中查找两个日期之间不包括周末和某些假期的小时数?营业时间套餐

    我正在尝试找到一种非常干净的方法来计算数量hours两个日期之间不包括weekends and 某些假期 我发现 BusinessHours 包 https pypi python org pypi BusinessHours 1 01 可
  • Android:NTLM 身份验证、ksoap 和持久连接

    在使用 iOS 并在没有太多学习曲线的情况下处理身份验证挑战之后 我发现 Windows 身份验证在 Java Android 中的过程要复杂得多 我尝试了多种不同的方法 因此无需过多讨论这些方法 我将采用最有效的方法 我现在使用为 NTL
  • 模板函数中的“C4430:缺少类型说明符 - 假定为 int”

    这段代码这么简单 难道不能编译通过吗 我真的对这个迷失了 include
  • 如何在一个 .NET 解决方案中跨项目进行通信?

    我有一个 NET Core UWP 解决方案 应用程序 它有 3 个不同的项目 我们称它们为 A B 和 C A 和 B 是 Windows 运行时组件 C 是一个简单的类库 项目 A 和 B 引用了项目 C 我想访问项目 C 的一个类 其
  • 我的函数的输入数量不确定

    我最近遇到一个问题 我应该定义一个输入数量不确定的函数 即输入数量可能会根据实际情况而变化 我应该使用二维数组还是其他数组 我不知道 struct2cell 是否有帮助以及它是否真的有效 有谁知道执行此操作的最佳方法吗 我可能说得不太清楚
  • 通过捏合手势缩放图像

    我正在使用 jQuerytouchy用于检测捏合事件的插件 使用户能够放大 缩小图像 这是我的代码的要点 var w 800 h 600 img on touchy pinch function e target data this css
  • 使用EF中的通用方法检查数据库中是否存在记录[重复]

    这个问题在这里已经有答案了 我正在开发一个 Asp Net MVC 应用程序 并尝试创建一个通用方法来通过使用传递给此方法的实体 ID 来检查数据库中是否存在特定记录 像下面这样 public bool CheckIfUserExistsB
  • angularjs 和 requirejs 中“Q”和“q”的区别

    我正在创建一个基于 AngularJS Breeze 和 RequireJS 构建的单页应用程序 在使用 requirejs 设置 AMD 以与 Angular 和 Breeze 配合使用时 我遇到了 Breeze 对 q 的依赖问题 如果
  • 在 Windows 7 上安装 Visual Studio 2013

    我想在 Windows 7 64 位上安装 Visual Studio 2013 由于某种原因 安装程序显示 安装被阻止 并显示错误 此版本的 Visual Studio 需要一台装有较新版本 Windows 的计算机 此错误并不能准确描述
  • 按字母和数字拆分字符串

    有人能帮我一些正则表达式吗 我想将以下字符串拆分为字母和数字 例子 细绳ns01sp0001分割后应该是 ns01sp and 0001 我尝试使用下面的正则表达式 String array str split A Z0 9 lt A Z
  • ArrayFormula 连接中的过滤器(Google 电子表格)

    我进行了长时间的搜索 但找不到我要找的东西 也许有人可以帮忙 我的 Google 电子表格中有这个公式 我将在下面解释它的作用 Join FILTER Sheet1 B B Sheet1 A A A1 表 1 中有一个表格 A 列是名字 例
  • 使用 Apache poi 将 ppt 转换为 png

    您好 我正在尝试使用 Apache Poi 框架将 ppt 的每张幻灯片转换为单独的 png 问题是有些幻灯片变形了 例如 有一张幻灯片的背景是彩虹色 某些幻灯片上的图像根本不会出现在 png 文件中 这是代码 FileInputStrea