java ppt转图片 解决图片不清晰问题,Java PowerPoint转图片,使用java操作ppt转图片

linux环境操作PPT转图片总结 关于linux系统环境下,php操作将ppt文件转换为图片列表的方法 阅读详情

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。

POI 操作office需要的jar包:

 <properties>
		<poi.version>3.17</poi.version>
    </properties>
       <!-- poi office -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-examples</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>${poi.version}</version>
        </dependency>

poi生成的原图清晰度比较有限,所以转高清图的思路是生成图片的时候放大图片。下面是代码的实现。

package com.gorun.platform.art.common.minio.http;


import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class Ppt {

    public static void main(String[] args) {
        File ppt = new File("C:\\Users\\lenovo\\Desktop\\7787.pptx");
        String img = "C:\\Users\\lenovo\\Desktop\\demo";
        System.out.println(converPPTtoImage(ppt,img,"png",8));
    }

    /**
     * 将PPT 文件转换成image
     *
     * @param orignalPPTFile    //PPT文件对象 如:d:/demo/demo1.ppt
     * @param targetImageFileDir    //转换后的图片保存路径 如:d:/demo/pptImg
     * @param imageFormatNameString //图片转化的格式字符串 ,如:"jpg"、"jpeg"、"bmp" "png" "gif" "tiff"
     * @param times //生成图片放大的倍数,倍数越高,清晰度越高
     * @return 图片名列表
     */
    public static int converPPTtoImage(File orignalPPTFile,String targetImageFileDir,
                                       String imageFormatNameString, int times) {

        //验证图片是否为pptx格式
        if(!checkIsPPTFile(orignalPPTFile)){
            System.out.print("转换文件必须是pptx!");
            return 0;
        }
        List<String> list = new ArrayList<String>();
        FileInputStream is = null ;
        int imgCount = 0;
        File imgFile = new File(targetImageFileDir);
        //如果没有文件夹就创建文件夹
        createDirIfNotExist(targetImageFileDir);
        try {
            is = new FileInputStream(orignalPPTFile);
            XMLSlideShow xmlSlideShow = new XMLSlideShow(is);
            is.close();
            // 获取大小
            Dimension pgsize = xmlSlideShow.getPageSize();
            // 获取幻灯片
            XSLFSlide[] slides = xmlSlideShow.getSlides().toArray(new XSLFSlide[0]);
            imgCount = slides.length;
            for (int i = 0 ; i < slides.length ; i++) {
                // 解决乱码问题
                XSLFShape[] shapes = slides[i].getShapes().toArray(new XSLFShape[0]);
                for (XSLFShape shape : shapes) {
                    if (shape instanceof XSLFTextShape) {
                        XSLFTextShape sh = (XSLFTextShape) shape;
                        List<XSLFTextParagraph> textParagraphs = sh.getTextParagraphs();
                        for (XSLFTextParagraph xslfTextParagraph : textParagraphs) {
                            List<XSLFTextRun> textRuns = xslfTextParagraph.getTextRuns();
                            for (XSLFTextRun xslfTextRun : textRuns) {
                                xslfTextRun.setFontFamily("宋体");
                            }
                        }
                    }
                }
                // 创建BufferedImage对象,图像的尺寸为原来的每页的尺寸*倍数times
                BufferedImage img = new BufferedImage(pgsize.width * times,
                        pgsize.height * times, BufferedImage.TYPE_INT_RGB);
                Graphics2D graphics = img.createGraphics();
                graphics.setPaint(Color.white);
                graphics.scale(times, times);// 将图片放大times倍
                graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width,pgsize.height));
                // 最核心的代码
                slides[i].draw(graphics);
                //图片将要存放的路径
                String absolutePath = imgFile.getAbsolutePath()+"/"+ (i + 1)
                        + "_" + UUID.randomUUID().toString() + "." + imageFormatNameString;
                File jpegFile = new File(absolutePath);
                // 图片路径存放
                list.add((i + 1) + ".jpg");
                //如果图片存在,则不再生成
                if (jpegFile.exists()) {
                    continue;
                }
                // 这里设置图片的存放路径和图片的格式(jpeg,png,bmp等等),注意生成文件路径
                FileOutputStream out = new FileOutputStream(jpegFile);
                // 写入到图片中去
                ImageIO.write(img, "jpeg", out);
                out.close();
            }
            System.out.print("PPT转换成图片 成功!");
            return imgCount;
        }
        catch (Exception e) {
            e.printStackTrace();
            System.out.print("PPT转换成图片 发生异常!");
        }
        return imgCount;
    }



    /**
     * 检查是否为ppt文件
     * @param file
     * @return
     */
    public static boolean checkIsPPTFile(File file) {
        boolean isppt = false;
        String filename = file.getName();
        String suffixname = null;
        if (filename != null && filename.indexOf(".") != -1) {
            suffixname = filename.substring(filename.lastIndexOf("."));
            if (".pptx".equals(suffixname)) {
                isppt = true;
            }
            return isppt;
        } else {
            return isppt;
        }
    }

    /**
     * 创建文件如果路径不存在则创建对应的文件夹
     * @param file
     * @return
     */
    public static File createDirIfNotExist(String file) {
        File fileDir = new File(file);
        if (!fileDir.exists()) {
            fileDir.mkdirs();
        }
        return fileDir;
    }

}

JAVA ImageJ 支持图片格式转换,图片放大缩小等,功能非常强大,缩略图高清晰,有实例代码 ImageJ 支持图片格式转换,图片放大缩小等是一个不错的选择,压缩包中包括库文件,实例类,以及ImageJ的源代码!还有API帮助文档!DOC文档太大.暂不发送 立即下载

相关推荐

pdf转高清图片

可能会遇到ppt转图片时,清晰度不够或者有些插图解析不出来,这个pdf转图片的方法很好地解决了这个问题

java ppt转图片 解决图片不清晰问题

public static void main(String[] args) { File file = new File("/Users/**/Downloads/蚝大炮西南烧烤.pptx"); // 放大比例 double scale = 1.5; try (SlideShow<?, ?> ss = SlideShowFactory.create(file, null, true)) { Dimen...

qq_14946627的博客 1716

java利用openoffice,把word,execl,ppt转成图片,

因为在Android项目中要用到在线查看Office文档,但是缺没有合适的SDK可以用,只能从图片着手。下载一个Openoffice软件下载到电脑然后安装,具体如何安装请百度一下。分析一下代码的功能;Entry.java这个类的原理是先通过OfficeToPDF.java把文档转成pdf,然后再通过Pdf2Jpg.java这个类把PDF转成JPG或者PNG,想转成什么格式图片在Pdf2Jpg.java这个类当中设置一下,代码经过测试,完全没有问题,如果碰到问题,请在下面评论,一周内会解答疑问。

java ppt转图片 失真_java转换ppt,ppt转成图片 乱码问题解决

import java.awt.Dimension;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.awt.Color;impor...

weixin_36328210的博客 668

Java PDF转图片 完美方案 绝对可用

项目中遇到此需求,网上搜罗各种资料,都没有100%解决问题,要么丢字符,要么格式错乱,要么乱码,潜心攻克几天,终于找到完美方案,现分享给各位同仁; 基于apache pdfbox库实现Java PDF转图片,带源码和pom文件; 开发环境导入maven工程,PdfToImg为测试类,修改其中test.pdf和test.png的路径即可运行; PDFUtil为独立工具类,可放置任何工程中运行。 如果在linux中运行出现乱码,说明linux未安装中文字体,安装一个中文字体即可。

自动控制原理之控制系统的数学模型(类比神经网络学习数学模型)

控制系统的数学模型背景建模方法常用的数学模型时域数学模型的建立建立微分方程的步骤复数域模型的建立传递函数的性质系统的典型环节及传递函数比例环节惯性环节积分环节微分环节理想微分环节一阶微分环节二阶微分环节振荡环节延时环节(时滞环节) 背景 数学模型就像是真实世界的写照,它就像一个虚拟的世界,我们可以通过建模的方式了解这个真实世界的运作规律。 这一点很像强化学习,强化学习需要一个供智能体探索、学习的环境,于是,我们通常会事先建立一个虚拟的仿真环境。举个例子,对于人类来说,可能需要经过不断地尝试,甚至是生命的代价

zbp_12138的博客 6578

java ppt转图片 失真_java poi 实现ppt转图片(解决图片不高清问题)

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。POI 操作office需要的jar包:image.pngpoi生成的原图清晰度比较有限,所以转高清图的思路是生成图片的时候放大图片。下面是代码的实现。import java.awt.Color;import java.a...

weixin_33356544的博客 1774

解锁RK3588视觉潜能:RGA硬件加速库实战指南

本文深入探讨了如何利用RK3588芯片内置的RGA硬件加速库,解决视觉应用中图像预处理的性能瓶颈。通过实战指南,详细介绍了RGA库在YUV转RGB、图像缩放等核心操作上的应用,相比CPU软处理可大幅降低延迟与CPU占用,从而充分释放RK3588的NPU算力,构建高效的AI视觉预处理流水线。

zeta9的博客 671

Java代码实现----PPT转图片----及org/apache/batik/bridge/GVTBuilder Handler dispatch failed问题解决

【代码】Java代码实现----PPT转图片----及org/apache/batik/bridge/GVTBuilder Handler dispatch failed问题解决。

不知名小人物的博客 1339

Cadence Spectre仿真保姆级教程:从DC/AC到PSS/PV,手把手教你搞定模拟电路分析

作为业界标准的Cadence Spectre仿真器,以其精确的算法和丰富的分析类型,成为每个模拟IC工程师必须掌握的利器。本文将带你从零开始,系统掌握Spectre仿真的核心技能,从最基础的DC工作点分析到复杂的PSS相位噪声仿真,每个步骤都配有详细的操作指导和实用技巧。记得我第一次使用Spectre仿真一个简单的两级运放时,花了整整三天时间才得到正确的AC响应曲线。过程中踩过的坑、浪费的时间,现在想来都是宝贵的学习资源。与传统的AC分析不同,STB分析可以在不破坏环路的情况下评估稳定性。

weixin_30898555的博客 336

Vivado ILA调试全攻略:从HDL实例化到Block Design的5个实战技巧

本文全面解析了Vivado集成逻辑分析仪(ILA)的五种核心调试方法,涵盖从HDL代码实例化到Block Design集成的实战技巧。详细对比了不同方法的优缺点与适用场景,并重点介绍了如何利用Debug Hub高效管理多时钟域复杂调试,旨在帮助FPGA开发者精准定位问题,显著提升板级调试效率。

weixin_29214199的博客 378

PPT转图片终极指南:免费开源工具一键搞定

还在为PPT文档的分享和格式兼容问题困扰吗?想要快速将精美的演示文稿转换为图片格式,方便在各种平台上传播和查看?PPT2Image这款强大的开源工具就是你的完美解决方案!🎯 这个基于Java开发的免费库能够将PPT和PPTX文件逐页转换为高质量的图像,让文档处理变得前所未有的简单高效。 ## 为什么选择PPT转图片? 在日常工作中,我们经常会遇到这些痛点: - **格式兼容问题**:对方没

gitblog_00161的博客 1070

《哥谭神话-工程篇》01.Palantir 平台架构解析-混乱数据如何转化唯一真相源?

Palantir 平台的架构哲学可以概括为将洞察落地为行动,其核心是将“获取唯一真相”能力深度嵌入现有的、复杂的工作流程中,成为提升运营效率和决策质量的倍增器。

906

终极PPT转图片指南:免费开源工具一键搞定

还在为PPT文档的分享和存档问题困扰吗?想要将精美的演示文稿快速转换为图片格式,方便在各种场景下使用?今天我要为你介绍一款高效的免费开源工具——PPT2Image,它能让文档转换工作变得轻松简单! ## 痛点场景:为什么需要PPT转图片? 在日常工作和学习中,我们经常会遇到这些尴尬情况: - **微信分享难题**:精心制作的PPT想在群里分享,但对方没有Office软件 - **移动查看不便

gitblog_00931的博客 735

Rocfall安装包&安装教程

Rocfall 第一步:下载安装包 下载路径: 链接:https://pan.baidu.com/s/1Dzvxzv67dSPRi7f7ZT9EeA 提取码:o9pl 第二部:安装 安装包解压 选择part1进行解压 点击Setup.exe启动安装 生成Serial Number 替换启动程序 安装完毕 素材来源于网络(禁止用于商业仅用于完成毕业设计和研究使用) 谢谢! ...

cym的博客 8707

xhs私信协议分析

之前分析过xhs的shield算法,今天再聊聊xhs的私信,文章仅供学习参考研究交流,如有侵权请联系删帖。经过抓包分析发现私信接口并不是走的http协议,而是socket协议。而要获取socket包则需要使用wireshark软件1、protobuf的包体中的序号7,多次验证后发现文字信息的需要需要固定成12、protobuf的包体中的序号12,多次验证后发现文字信息的需要需要固定成1后续有时间的话,再研究一下视频和图片格式的私信协议,这次就分析到这里吧。

佛系更新... 3488

PPT转图片完整指南:快速实现高效文档图像化转换

在当今数字化办公环境中,PPT转图片的需求日益增长。无论是为了移动端适配、内容分发,还是文档归档,将PPT文档转换为高质量的图片格式都成为了必备技能。本文为您详细介绍如何利用PPT2Image工具,简单快速地完成PPT转图片操作。 ## 🚀 快速上手:三步完成PPT转图片 **第一步:获取工具** ```bash git clone https://gitcode.com/gh_mirror

gitblog_00689的博客 761

如何创建 SAP ABAP CDS View 的 Association

所以本文我们虽然学习了如何创建 SAP CDS View 的 association,知道了 association 是用来在 CDS View 里将两张数据库表关联起来,但根本不知道怎么使用这个 association. 而且从 association 的写法来看,似乎和本教程之前介绍 inner join,left join 这些数据库表的连接操作没什么区别,都是根据两张表的 carrid 和 connid 字段相同进行的连接。只看到了我们在 CDS View 源代码实现里,放出来的四个字段。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 906

PPT转图片终极解决方案:高效将PPT/PPTX转换为高质量图像

PPT2Image是一个专业的Java开源工具,专门用于将PPT和PPTX演示文稿逐页转换为高质量图像文件。基于Apache POI技术栈,该项目为开发者提供了简单易用的PPT转图片功能,是文档处理领域的创新利器。 ## 技术核心揭秘 PPT2Image通过深度集成Apache POI 3.9版本,实现了对两种主流演示文稿格式的完美支持。核心技术组件包括: - **基础POI库**:提供Of

gitblog_00972的博客 927

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【人工智能】Deepseek 与 Kimi 联袂:重塑 PPT 创作,开启智能演示新纪元

在当今快节奏的工作与学习场景中,PPT 制作常常是一项耗时耗力的任务。从前期的资料收集、构思框架,到后期的排版设计,每一个环节都需要投入大量精力。然而,随着人工智能技术的迅猛发展,Deepseek 与 Kimi 的携手出现,为 PPT 创作带来了革命性的变化,开启了智能演示的全新纪元。

2301_80350265学无止尽5的博客 6468

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

3分钟快速上手:PPT2Image让PPT文档秒变高清图片

还在为PPT文档无法在手机上完美展示而烦恼吗?PPT2Image这款神器能够轻松将PPT或PPTX文件转换为高质量图片,让你的演示文稿在任何设备上都清晰可见!🎯 ## 为什么需要PPT转图片?常见场景解析 在日常工作中,我们经常会遇到这样的情况: - 需要在微信群里分享PPT内容,但手机无法直接打开 - 想要将PPT页面作为图片插入到其他文档中 - 需要将PPT内容保存为图片格式长期存档

gitblog_00895的博客 1011

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

高效PPT转换工具:一键将PPT/PPTX文件批量转为高质量图片

PPT2Image是一款基于Java开发的**PPT转换工具**,专门用于将PPT和PPTX格式的演示文稿文件逐页转换为高质量图像。这个开源项目让**PPT转图片**变得异常简单,只需几行代码就能完成复杂的文档转换任务,为技术新手和普通用户提供了极大的便利。 ## 🎯 为什么选择这款PPT转图像工具? ### 简单易用的操作体验 - **零配置启动**:无需复杂设置,导入项目即可使用 - *

gitblog_00861的博客 1020

java ppt转图片 失真_Apache POI将PPT转换成图片实例代码

本文主要分享的是关于Apache POI将PPT转换成图片的相关内容,简单介绍了Apache POI,具体内容如下。1、Apache POI 简介Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。Apache POI操作PPT文档有两种方式:1.POI-HSLF 对应的 ...

weixin_39527911的博客 773

快速将PPT转为图片:免费开源工具全攻略

还在为PPT演示文稿的分享和存档问题烦恼吗?想要把精美的幻灯片一键转换为图片格式,方便在社交媒体分享或移动设备查看?今天我要向你介绍一款高效的PPT转图片开源工具,让你的文档处理工作变得轻松简单! ## 为什么需要PPT转图片? 在日常工作中,我们经常会遇到这样的情况: - 需要在微信群里分享PPT内容,但对方没有安装Office软件 - 想要将重要演示文稿存档为图片格式,防止格式错乱 - 需

gitblog_01173的博客 1051

java ppt 绘图,Java 在PPT中绘制图形

原标题:Java 在PPT中绘制图形Microsoft PowerPoint可支持在幻灯片中插入各种类型的图形并且可设置图形填充、线条颜色、图形大小、位置等。下面将通过Java编程来演示在PPT中绘制图形的方法。工具:Free Spire.Presentation for Java v 2.2.3Jar文件导入方法1:通过官网下载,并导入Step1:创建目录文件lib,并将Spire.Presen...

weixin_42566451的博客 507
上一篇: element UI el-autocomplete 带输入建议的输入框
下一篇: java复制文件的4种方式
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值