`

文件在线预览ppt转换图片(二)

 
阅读更多
package com.lx.file.convert.master.ppt;

import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;
import java.util.Locale;

import javax.imageio.ImageIO;

import org.apache.poi.sl.draw.DrawFactory;
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 PPT2ImageMaster {
	public String  PptxToImage(String filePath) throws IOException{
		//创建文件输入对象
		File outdir = new File("F:\\21.文档转换\\测试文档\\浪潮交流");

		File file=new File(filePath);
		FileInputStream fileinputstream =new FileInputStream(file);
		//读取幻灯片
		XMLSlideShow ppt = new XMLSlideShow(fileinputstream);
		List<XSLFSlide> slides = ppt.getSlides();
		Dimension pgsize = ppt.getPageSize();
		int width = (int) (pgsize.width);
		int height = (int) (pgsize.height);
		for (int i=0 ;i< slides.size();i++) {
			XSLFSlide slide = slides.get(i);
			for (XSLFShape shape : ppt.getSlides().get(i).getShapes()) {
				if (shape instanceof XSLFTextShape) {
					XSLFTextShape tsh = (XSLFTextShape) shape;
					for (XSLFTextParagraph p : tsh) {
						for (XSLFTextRun r : p) {
							System.out.println(r.getFontFamily());
							r.setFontFamily("微软雅黑");
						}
					}
				}
			}

			BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
			Graphics2D graphics = img.createGraphics();
			DrawFactory.getInstance(graphics).fixFonts(graphics);

			// default rendering options
			graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
			graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
			graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
			graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,
					RenderingHints.VALUE_FRACTIONALMETRICS_ON);

			graphics.scale(1, 1);
			// draw stuff
			slide.draw(graphics);

			// save the result
				String outname = file.getName().replaceFirst(".pptx?", "");
				outname = String.format(Locale.ROOT, "%1$s-%2$04d.%3$s", outname, i, "png");
				File outfile = new File(outdir, outname);
				ImageIO.write(img, "png", outfile);

			graphics.dispose();
			img.flush();
		}
		
		
		return null;
		
	}
	public static void main(String[] args) {
		try {
			new PPT2ImageMaster().PptxToImage("F:\\21.文档转换\\测试文档\\ppttest.pptx");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
0
0
分享到:
评论

相关推荐

    文件在线预览仅支持word/excel/ppt/pptx 4种文件的转换和预览

    在线预览PPT文件,用户可以查看幻灯片上的文本、图像、图表、动画和过渡效果。预览系统需处理这些多媒体元素,并保证演示流程的连贯性。 4. **Microsoft PowerPoint (PPTX)**: PPTX是PowerPoint的一个较新文件格式...

    HTML+JS实现浏览器在线预览文件(支持pdf、excel、ppt、doc、jpg、png格式)

    通过JavaScript,我们可以编写代码来处理文件预览的需求。 对于PDF文件的预览,我们可以利用浏览器内置的`&lt;object&gt;`或`&lt;iframe&gt;`标签,嵌入PDF文件的URL。例如: ```html 您的浏览器不支持PDF预览,请下载文件...

    Base64文件图片编码解码双向转换解析预览工具

    总结来说,"Base64文件图片编码解码双向转换解析预览工具"是一款实用的应用,涵盖了Base64编码与解码的核心功能,特别适合于处理图片和文件的在线转换,而且其预览和暗色背景设计考虑了用户体验,使得处理透明图片...

    在线文档预览,支持ppt,word,excel在线预览

    本项目专注于实现对PPT、Word、Excel等常见办公文档的在线预览,通过集成OpenOffice、jodconverter以及pdf.js技术,使得这一过程变得高效且便捷。 **OpenOffice** 是一个开源的办公软件套件,它不仅支持创建、编辑...

    Linux服务上实现在线预览PPT,PPTX,DOC,DOCX,XLS,XLSX文件安装插件详细步骤

    ### Linux服务上实现在线预览PPT/PPTX/DOC/DOCX/XLS/XLSX文件的安装插件详细步骤 #### 环境准备 本文档主要介绍如何在Linux服务器上实现各种常见文档(包括PPT、PPTX、DOC、DOCX、XLS、XLSX)的在线预览功能。此...

    php实现在线预览功能

    在IT行业中,尤其是在Web开发领域,提供在线预览功能是一个常见的需求,这使得用户无需下载文件就能查看其内容。PHP是一种广泛使用的服务器端脚本语言,非常适合处理这种任务。本篇将详细介绍如何使用PHP实现对多种...

    基于Wpf开发的预览office程序 ,支持此些文件转换图片,xps

    在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)技术来开发一个预览Office文档的程序,该程序能够支持多种Office文件格式,并具备转换为图片和XPS文档的功能。此外,它还包含了缩放和打印...

    Vue实现文件预览,支持word excel pdf ppt image txt mp4等格式

    在Vue.js开发中,有时我们需要实现前端文件预览功能,以提供用户在不下载文件的情况下查看内容。这个功能尤其适用于word文档、excel表格、pdf、ppt演示文稿、图像、文本文件、json数据以及视频文件如mp4。下面将详细...

    在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档插件

    在线预览文档技术是现代互联网应用中的重要组成部分,它允许用户在不下载文件到本地的情况下查看文档内容。这种技术在各种场景下都有广泛的应用,比如邮件系统、文档分享平台、协同办公工具等。本资源提供的是一款...

    利用java后端实现文件在线预览

    本文将详细讲解如何利用Java后端技术实现文件在线预览,特别是针对文档(如.doc、.docx、.xls、.xlsx、.ppt、.pptx)和图片格式的预览。 首先,我们需要理解文件预览的基本原理:用户通过浏览器发送请求到服务器,...

    Asp.net MVC 实现在线预览word、excel、ppt、pdf文件

    在Asp.net MVC框架中,实现在线预览各种办公文档,如Word、Excel、PowerPoint和PDF文件,是一项常见的需求。这通常涉及到技术栈的整合,包括后端处理和前端展示。以下是一些关键知识点: 1. **Asp.net MVC框架**:...

    (免数据库)文件在线预览仅支持word/excel/ppt/pptx 4种文件的转换和预览(

    对莫思念1314的程序进行无数据库调整 文件在线预览仅支持word/excel/ppt/pptx 4种文件的转换和预览 http://download.csdn.net/detail/u010589258/7004625#comment

    aspose实现在线预览word,ppt,excel,pdf文件架包(1)

    本篇将详细介绍如何利用Aspose实现在线预览这些文件类型。 1. **Aspose.Words for .NET** Aspose.Words 是Aspose产品家族中的一个重要组件,专门用于处理Microsoft Word文档(.doc, .docx等)。通过这个库,你可以...

    C#ppt,Excel,words,pdf在线预览demo

    预览PPT时,C#可能使用了如Microsoft Office Interop库来与Office应用程序进行交互,将PPT转换为HTML或其他Web友好的格式。另一种方法是使用第三方库,如Aspose.Slides,它可以将PPT文件转换为图片序列,然后在...

    java实现浏览器在线预览offic(doc、xls、ppt)和pdf文件

    java实现浏览器在线预览offic(doc、xls、ppt)和pdf文件,本人将例子集成到项目中,已成功。 技术原理:将文件先转换成pdf文件,再将pdf文件转换成swf文件,最后显示在浏览器上。 资源描述:本资源包括swftools...

    前端PPT预览插件资源

    在前端开发中,有时我们需要为用户提供预览PPT文件的功能,而无需依赖第三方服务或打开新的浏览器窗口。这种需求可以通过引入特定的预览插件来实现。本文将深入探讨一个名为“PPTXjs”的前端插件,它专门用于处理...

    java实现ppt,xls,doc在线预览

    在IT行业中,尤其是在Web开发领域,提供用户友好的文件预览功能是十分常见的需求。Java作为广泛应用的服务器端编程语言,具有丰富的库和框架来处理各种任务,包括文档的在线预览。本篇将深入探讨如何使用Java实现PPT...

    基于Java的WDA文件在线预览系统设计源码

    文件类型包括53个Java源代码文件、17个JAR包文件、15个PNG图片文件、13个JSP页面文件、7个XML配置文件、6个CSS样式文件、6个JavaScript脚本文件、4个Properties配置文件、2个SWF文件、2个JPG图片文件。该系统通过...

    基于springboot的文件在线预览.rar

    对于文件预览,主要涉及以下几个关键步骤: 1. **文件上传**:用户通过前端界面选择文件并提交,后端通过SpringBoot的`@PostMapping`注解接收文件。SpringBoot的`MultipartFile`类可以用来处理上传的文件。 2. **...

Global site tag (gtag.js) - Google Analytics