`
zhuyufufu
  • 浏览: 138312 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

文档展示:POI PPT转图片

阅读更多
接上篇 文档展示 PDF转图片
http://zhuyufufu.iteye.com/admin/blogs/2009600

本篇研究使用POI转PPT到图片

参考apache poi api slideshow:
http://poi.apache.org/slideshow/how-to-shapes.html#Render

Export PowerPoint slides into java.awt.Graphics2D

演示代码
package com.zas.ppt.demo;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.usermodel.RichTextRun;
import org.apache.poi.hslf.usermodel.SlideShow;

public class PPTtoImage {
	static String filePath = "D:\\pdf\\转换用.ppt";
	static String outputFilePath = "D:\\pdf\\ppt\\";

	public static boolean change(File file, File outputFolder) {
		// TODO 校验输入文件是否存在 以及是否为PPT
		try {
			FileInputStream is = new FileInputStream(file);
			SlideShow ppt = new SlideShow(is);
			Dimension pgsize = ppt.getPageSize();
			Slide[] slide = ppt.getSlides();
			for (int indexPPT = 0; indexPPT < slide.length; indexPPT++) {
				System.out.println("第" + indexPPT + "页。");
				TextRun[] truns = slide[indexPPT].getTextRuns();
				for (int indexTestRun = 0; indexTestRun < truns.length; indexTestRun++) {
					RichTextRun[] rtruns = truns[indexTestRun].getRichTextRuns();
					for (int indexRTR = 0; indexRTR < rtruns.length; indexRTR++) {
						rtruns[indexRTR].setFontIndex(1);
						rtruns[indexRTR].setFontName("宋体");
					}
				}
				BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);

				Graphics2D graphics = img.createGraphics();
				graphics.setBackground( new Color( 255, 255, 255, 0 ) );
			    graphics.clearRect( 0, 0, pgsize.width, pgsize.height);
				graphics.setPaint(Color.white);
				graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
				slide[indexPPT].draw(graphics);

				// 这里设置图片的存放路径和图片的格式(jpeg,png,bmp等等),注意生成文件路径
				FileOutputStream out = new FileOutputStream(outputFolder.getAbsolutePath() + File.separator + (indexPPT + 1) + ".jpg");
				javax.imageio.ImageIO.write(img, "jpeg", out);
				out.close();
				is.close();
			}
			System.out.println("success!!");
			return true;
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return false;
	}
	
	public static void main(String[] args) {
		File file = new File(PPTtoImage.filePath);
		File outputFolder = new File(PPTtoImage.outputFilePath);
		if(!outputFolder.exists()){
			outputFolder.mkdirs();
		}
		PPTtoImage.change(file, outputFolder);
	}

}


问题:
  我的测试例子生成的图片没有文字内容

  据说就算生成出图片效果也会失真很多

  打算换个思路:使用OpenOffice将PPT转为PDF
0
0
分享到:
评论

相关推荐

    java用poi转ppt为图片和用pdfbox转pdf为图片的demo

    在"java用poi转ppt为图片"的场景下,我们可以利用POI的API将PPT文件的每一页转换为图像。这样做的好处在于,可以方便地在网络上传输或嵌入到其他不支持PPT格式的应用中。转换过程通常涉及打开PPT文件,遍历每一页...

    poi-3.17-API文档-中文版.zip

    赠送原API文档:poi-3.17-javadoc.jar; 赠送源代码:poi-3.17-sources.jar; 赠送Maven依赖信息文件:poi-3.17.pom; 包含翻译后的API文档:poi-3.17-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache....

    POI操作PPT文档(导入,导出,读取,添加,拼接,替换文本,页面排序)

    POI 操作 PPT 文档(导入、导出、读取、添加、拼接、替换文本、页面排序) POI(Apache POI)是一款开源的Java库,用于读取和写入各种Microsoft Office文件格式,包括PPT文档。本文档将介绍如何使用POI操作PPT文档...

    poi4.1.2以及所有依赖,源码,文档.zip

    org.apache.poi:poi:4.1.2 org.apache.poi:poi-ooxml:4.1.2 org.apache.poi:poi-ooxml-schemas:4.1.2 org.apache.xmlbeans:xmlbeans:3.1.0 com.github.virtuald:curvesapi:1.06 com.zaxxer:SparseBitSet:1.2 commons...

    POI中文帮助文档_POI_

    Apache POI是一个开源项目,主要用于读取和写入Microsoft Office格式的文件,如Word(.doc/.docx)、Excel(.xls/.xlsx)和PowerPoint(.ppt/.pptx)。这个“POI中文帮助文档”提供了全面的指南,帮助开发者理解和...

    poi将word、PPT、Excel转pdf实现在线预览的jar包

    标题中的“poi将word、PPT、Excel转pdf实现在线预览的jar包”涉及到的是Apache POI库在Java开发中的应用,以及如何利用它来处理Microsoft Office文档并转换为PDF格式,以便进行在线预览。Apache POI是Java平台上用于...

    java poi官方文档

    - 在官方文档中,你可以找到创建工作簿、工作表、单元格、段落、图片等对象的示例代码。这些示例通常包括如何读取数据、设置样式、应用公式以及处理图表等内容。 6. **性能优化**: - Java POI文档还会指导开发者...

    使用POI将office(doc/docx/ppt/pptx/xls/xlsx)文件转html格式

    在本场景中,我们将讨论如何使用POI将Office文档转换为HTML格式,这对于在网络上展示内容或进行数据迁移非常有用。 一、Apache POI 概述 Apache POI 是由Apache软件基金会开发的一个项目,其主要目标是支持...

    Word、Excel等常用文档格式通过POI转换为html页面

    Word、Excel等常用文档格式通过POI转换为html页面,亲测,可用。Word、Excel等常用文档格式通过POI转换为html页面,亲测,可用。Word、Excel等常用文档格式通过POI转换为html页面,亲测,可用。Word、Excel等常用...

    java实现poi模板生成PPT文件代码

    Java中的Apache POI库是一个强大的工具,用于读取、创建和修改Microsoft Office格式的文件,包括PPT(PowerPoint)文档。在这个项目中,我们将会探讨如何使用POI API来生成PPT文件,特别是通过模板的方式。以下是...

    POI将文件转为html

    在IT行业中,尤其是在数据处理和文档管理领域,Apache POI是一个非常重要的库,它允许开发者使用Java处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。本篇将详细讲解如何利用Apache POI将不同类型的...

    java文档excel、word、pdf、ppt转图片

    在Java编程环境中,将文档(如Excel、Word、PDF、PPT)转换为图片是一种常见的需求,这在处理大量文档预览、数据可视化或者移动设备兼容性问题时尤其有用。以下是一些关于如何使用Java实现这种转换的关键知识点: 1...

    Android pptx转图片存入本地

    本教程将详细解释如何实现这一过程,主要涉及的技术是Apache POI库,这是一个Java API,用于读取、创建和修改微软的Office文档,包括PPTX。 首先,你需要在Android项目中引入Apache POI库。由于Apache POI是为Java...

    利用java poi操作ppt

    使用Java POI创建一个新的PPT文档首先需要引入相关的库,例如`poi-ooxml`和`poi-ooxml-schemas`。通过`XSLFSlideShow`类,我们可以创建一个新的PowerPoint演示文稿实例。例如: ```java XMLSlideShow ppt = new ...

    poi操作ppt完整示例程序

    POI 提供了丰富的API,使得开发者能够创建、修改、读取和展示PPT文件,而无需依赖Microsoft Office。 首先,我们需要理解Apache POI中的主要类和接口,它们是处理PowerPoint的核心组件: 1. **XSLFSlideShow**: 这...

    java poi把word文档转化为html,支持doc。

    POI库提供API来访问Word文档的各个部分,如段落、表格、列表、图片等。 4. **使用步骤**: - 加载Word文档:使用POI的`HWPFDocument`类(针对.doc文件)或`XWPFDocument`类(针对.docx文件)打开Word文档。 - 遍历...

    使用POI读写PowerPoint文件(兼容ppt与pptx版本)

    在IT行业中,处理Office文档,特别是PowerPoint文件,是一项常见的任务。Apache POI是一个流行的开源Java库,专门用于读写Microsoft Office格式的文件,包括PPT和PPTX。本篇将详细介绍如何使用Apache POI来处理这两...

    poi-ppt.zip_POI_Poi-ppt_poi ImageExtractor_poi源码包

    这个“poi-ppt.zip”文件包含的是POI库中处理PowerPoint文件的部分,特别是关于图片提取的功能。在本文中,我们将深入探讨Apache POI库如何帮助开发者读取和操作Office文档,特别是PowerPoint中的图像。 首先,...

    java实现PPT转化为PDF

    在下面的代码中,我们将展示如何使用Apache POI 库和 iText 库来实现PPT 到 PDF 转换: ```java public class PPTtoImage { public static void main(String[] args) { // 读入 PPT 文件 File file = new File("D...

    org.apache.poi 3.17最新官方版文件操作jar包

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Word(.doc、.docx)、Excel(.xls、.xlsx)、PowerPoint(.ppt、.pptx)等。这个“org.apache.poi 3.17最新官方版文件操作jar包”包含了...

Global site tag (gtag.js) - Google Analytics