//此类需要poi3.1的jar包
package com.glc;
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;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.usermodel.RichTextRun;
import org.apache.poi.hslf.usermodel.SlideShow;
public class Test {
public static void main(String[] args) {
// 读入PPT文件
File file = new File("E:\\学习资料\\PPT\\ibatis教程.ppt");
doPPTtoImage(file);
}
public static boolean doPPTtoImage(File file) {
boolean isppt = checkFile(file);
if (!isppt) {
System.out.println("The image you specify don't exit!");
return false;
}
try {
FileInputStream is = new FileInputStream(file);
SlideShow ppt = new SlideShow(is);
is.close();
Dimension pgsize = ppt.getPageSize();
org.apache.poi.hslf.model.Slide[] slide = ppt.getSlides();
for (int i = 0; i < slide.length; i++) {
System.out.print("第" + i + "页。");
TextRun[] truns = slide[i].getTextRuns();
for (int k = 0; k < truns.length; k++) {
RichTextRun[] rtruns = truns[k].getRichTextRuns();
for (int l = 0; l < rtruns.length; l++) {
int index = rtruns[l].getFontIndex();
String name = rtruns[l].getFontName();
rtruns[l].setFontIndex(1);
rtruns[l].setFontName("宋体");
}
}
BufferedImage img = new BufferedImage(pgsize.width,
pgsize.height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setPaint(Color.BLUE);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width,
pgsize.height));
slide[i].draw(graphics);
// 这里设置图片的存放路径和图片的格式(jpeg,png,bmp等等),注意生成文件路径
File path = new File("F:/images");
if (!path.exists()) {
path.mkdir();
}
FileOutputStream out = new FileOutputStream(path + "/pict_"
+ (i + 1) + ".jpeg");
javax.imageio.ImageIO.write(img, "jpeg", out);
out.close();
}
System.out.println("success!!");
return true;
} catch (FileNotFoundException e) {
System.out.println(e);
// System.out.println("Can't find the image!");
} catch (IOException e) {
}
return false;
}
// function 检查文件是否为PPT
public static boolean checkFile(File file) {
boolean isppt = false;
String filename = file.getName();
String suffixname = null;
if (filename != null && filename.indexOf(".") != -1) {
suffixname = filename.substring(filename.lastIndexOf("."));
if (suffixname.equals(".ppt")) {
isppt = true;
}
return isppt;
} else {
return isppt;
}
}
}
分享到:
相关推荐
本文将深入探讨如何利用Java技术解决“PDF解析”和“PPT解析”的问题,以及如何通过将PPT转换为PDF来解决图片质量和插图转换的问题。 首先,我们要了解Java中的PDF解析。PDF(Portable Document Format)是一种广泛...
通过上述分析,我们可以看到,使用Java解析PDF、Word、PPT和Excel文档主要是依赖于两个强大的库:PDFBox和POI。这两个库提供了丰富的API,可以方便地进行文档的读写操作。无论是提取文档中的文本,还是进一步的数据...
本示例将详细解析如何利用Java来创建PPT文件,以及涉及到的关键技术和库。 首先,Java本身并不直接支持创建PPT文件,但是我们可以借助Apache POI库来实现这个功能。Apache POI是一个流行的API,它允许开发者处理...
通过解析PPT文件,我们可以提取幻灯片内容并将其转换为HTML或其他适合浏览器的格式。另一种方法是利用第三方服务,如Google Drive API或Microsoft Azure的API,它们提供了文件预览的功能,可以返回一个可嵌入网页的...
在Java编程环境中,将文档(如Excel、Word、PDF、PPT)转换为图片是一种常见的需求,这在处理大量文档预览、数据可视化或者移动设备兼容性问题时尤其有用。以下是一些关于如何使用Java实现这种转换的关键知识点: 1...
"java ppt讲解"可能是一系列关于Java编程的演示文稿,由知名讲师马士兵提供,旨在帮助初学者轻松掌握Java的基础知识。以下是这些PPT可能涵盖的一些关键知识点: 1. **Java简介**:介绍Java的历史、特性以及为何它在...
- **对象理解**:深入理解Java对象的创建,如String的两种初始化方式,以及内存中的变量池、堆和栈的区分。掌握Java中的基本数据类型和复杂数据类型,理解引用的概念。 - **集合框架**:理解String到集合的演变,...
【Java详解PPT】是清华大学提供的Java编程教学资源,它包含了一系列深入浅出的课程讲解,旨在帮助学习者全面理解Java编程语言的核心概念和技术。这个PPT教程通过丰富的实例和实际项目——HappyChat聊天系统的完整...
10. **Java API和库**:Java的标准库提供了大量预先编写的类和方法,涵盖了网络、数据库、XML解析等多个方面,是开发Java应用程序的重要资源。 以上是根据“北大青鸟java基础ppt”可能涉及的一些关键知识点。这份...
Java解析PPT教案主要涉及Java中的输入/输出流(I/O Stream)概念,这是Java编程中非常基础且重要的部分。在Java中,流是数据传输的抽象表示,它将不同的输入源(如键盘、文件、网络)和输出目标(如显示器、文件、...
【Java读取PPT文本和图片详解】 在Java开发中,有时我们需要处理PPT文档,例如提取其中的文本和图片信息。以下是如何使用Java来实现这一功能的详细步骤。 首先,我们需要一个库来支持对PPT文件的操作。在这个示例...
通过PPT的形式,内容通常会以直观、易懂的方式呈现,帮助学习者更好地理解和记忆关键概念。 课件可能涵盖以下Java知识点: 1. **Java概述**:介绍Java的历史、特点、应用领域,以及Java与其它编程语言的区别。 2....
10. **反射与注解**:这两个高级特性可以帮助在运行时检查类和对象,以及在编译时添加元数据,PPT可能对此进行了深入解析。 11. **Java新特性**:随着Java版本的更新,新的特性和API不断被引入,如Java 8的Lambda...
【JAVA课件ppt文件格式】是一系列针对Java编程语言的学习资料,主要以PPT(PowerPoint)文件形式呈现。这些课件涵盖了从基础知识到高级概念的全面讲解,旨在帮助学习者深入理解Java语言并提高其编程技能。以下是根据...
3. **面向对象编程**:深入解析类、对象、封装、继承、多态等核心概念,这是Java的核心特性,也是理解其他高级主题的基础。 4. **异常处理**:讲解如何使用try-catch-finally结构来捕获和处理程序运行时可能出现的...
Java作为一种强大的编程语言,提供了多种库和工具来帮助开发者实现这样的转换。本篇文章将深入探讨如何使用Java将Office Word、PDF、Excel和PPT文件转换为HTML文件。 首先,我们需要了解的是,Java中的文件转换通常...
根据提供的文件内容,以下是对“有关JAVA的一些PPT”中所涉及知识点的详细解析: ### 1. 面向对象编程(OOP) 面向对象编程是Java编程中的核心概念,涉及如何使用对象和类来设计软件和程序。OOP的基本原则包括: -...
这份"Java入门学习PPT课件"提供了简单易懂的方式,帮助新手理解Java的基础概念。 1. **Java简介**:Java是由Sun Microsystems(现为Oracle公司)开发的,由James Gosling引领的团队于1995年推出。它的设计目标是...
以上只是部分可能包含的内容,实际的PPT会根据毕向东老师的教学安排进行详细讲解,每部分内容都会配有实例代码和解析,帮助学习者更好地理解和掌握Java编程。 通过毕向东老师的Java基础PPT,学习者不仅可以系统地...
总的来说,Java POI为开发者提供了强大的能力来处理PPTX文件,结合HTML5的相关技术,可以实现PPT文件在网络上的高效展示和分享。不过,需要注意的是,转换过程中可能会丢失一些原PPT特有的功能,比如动态效果和复杂...