java转换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;
import java.awt.Dimension;
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.record.Slide;
import org.apache.poi.hslf.usermodel.RichTextRun;
import org.apache.poi.hslf.usermodel.SlideShow;

public class PPTtoImage {
	public static void main(String[] args) {
		// 读入PPT文件
		File file = new File("C:/test.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.white);
				graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width,	pgsize.height));
				slide[i].draw(graphics);

				// 这里设置图片的存放路径和图片的格式(jpeg,png,bmp等等),注意生成文件路径
				FileOutputStream out = new FileOutputStream("C:/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.indexOf("."));
			if (suffixname.equals(".ppt")) {
				isppt = true;
			}
			return isppt;
		} else {
			return isppt;
		}
	}

}

 

不知道从那找到的了,呵呵

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaPpt图片是指使用Java编程语言将PPT文件转换图片的过程。通过Java提供的相关库和API,可以实现将PPT文件中的每一页内容转换为对应的图片文件。 在Java中,可以使用Apache POI库来读取PPT文件的内容,并使用Java图形库(如Java AWT或JavaFX)将每一页的内容渲染为图片。具体步骤如下: 1. 导入Apache POI库和Java图形库的相关依赖。 2. 使用Apache POI库加载PPT文件,获取每一页的内容。 3. 创建一个空白的图片对象,设置图片的宽度和高度。 4. 使用Java图形库将每一页的内容绘制到图片上。 5. 将生成的图片保存到指定的路径。 以下是一个简单的示例代码,演示了如何使用JavaPPT文件转换图片: ```java import org.apache.poi.xslf.usermodel.XMLSlideShow; import org.apache.poi.xslf.usermodel.XSLFSlide; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; public class PptToImageConverter { public static void main(String[] args) { String pptFilePath = "path/to/presentation.pptx"; String outputFolderPath = "path/to/output/folder/"; try { // Load the PPT file XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(pptFilePath)); // Get the dimensions of the slides Dimension slideSize = ppt.getPageSize(); // Iterate through each slide int slideNumber = 1; for (XSLFSlide slide : ppt.getSlides()) { // Create a blank image with the same dimensions as the slide BufferedImage image = new BufferedImage(slideSize.width, slideSize.height, BufferedImage.TYPE_INT_RGB); // Render the slide onto the image Graphics2D graphics = image.createGraphics(); slide.draw(graphics); // Save the image to a file String outputFilePath = outputFolderPath + "slide" + slideNumber + ".png"; ImageIO.write(image, "png", new FileOutputStream(outputFilePath)); // Increment the slide number slideNumber++; } System.out.println("PPT to image conversion completed."); } catch (IOException e) { e.printStackTrace(); } } } ``` 请注意,上述示例代码中使用的是Apache POI库的XSLF模块,适用于PPTX格式的文件。如果需要处理PPT格式的文件,可以使用HSLF模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值