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();
}
}
}
分享到:
相关推荐
在线预览PPT文件,用户可以查看幻灯片上的文本、图像、图表、动画和过渡效果。预览系统需处理这些多媒体元素,并保证演示流程的连贯性。 4. **Microsoft PowerPoint (PPTX)**: PPTX是PowerPoint的一个较新文件格式...
通过JavaScript,我们可以编写代码来处理文件预览的需求。 对于PDF文件的预览,我们可以利用浏览器内置的`<object>`或`<iframe>`标签,嵌入PDF文件的URL。例如: ```html 您的浏览器不支持PDF预览,请下载文件...
总结来说,"Base64文件图片编码解码双向转换解析预览工具"是一款实用的应用,涵盖了Base64编码与解码的核心功能,特别适合于处理图片和文件的在线转换,而且其预览和暗色背景设计考虑了用户体验,使得处理透明图片...
本项目专注于实现对PPT、Word、Excel等常见办公文档的在线预览,通过集成OpenOffice、jodconverter以及pdf.js技术,使得这一过程变得高效且便捷。 **OpenOffice** 是一个开源的办公软件套件,它不仅支持创建、编辑...
### Linux服务上实现在线预览PPT/PPTX/DOC/DOCX/XLS/XLSX文件的安装插件详细步骤 #### 环境准备 本文档主要介绍如何在Linux服务器上实现各种常见文档(包括PPT、PPTX、DOC、DOCX、XLS、XLSX)的在线预览功能。此...
在IT行业中,尤其是在Web开发领域,提供在线预览功能是一个常见的需求,这使得用户无需下载文件就能查看其内容。PHP是一种广泛使用的服务器端脚本语言,非常适合处理这种任务。本篇将详细介绍如何使用PHP实现对多种...
在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)技术来开发一个预览Office文档的程序,该程序能够支持多种Office文件格式,并具备转换为图片和XPS文档的功能。此外,它还包含了缩放和打印...
在Vue.js开发中,有时我们需要实现前端文件预览功能,以提供用户在不下载文件的情况下查看内容。这个功能尤其适用于word文档、excel表格、pdf、ppt演示文稿、图像、文本文件、json数据以及视频文件如mp4。下面将详细...
在线预览文档技术是现代互联网应用中的重要组成部分,它允许用户在不下载文件到本地的情况下查看文档内容。这种技术在各种场景下都有广泛的应用,比如邮件系统、文档分享平台、协同办公工具等。本资源提供的是一款...
本文将详细讲解如何利用Java后端技术实现文件在线预览,特别是针对文档(如.doc、.docx、.xls、.xlsx、.ppt、.pptx)和图片格式的预览。 首先,我们需要理解文件预览的基本原理:用户通过浏览器发送请求到服务器,...
在Asp.net MVC框架中,实现在线预览各种办公文档,如Word、Excel、PowerPoint和PDF文件,是一项常见的需求。这通常涉及到技术栈的整合,包括后端处理和前端展示。以下是一些关键知识点: 1. **Asp.net MVC框架**:...
对莫思念1314的程序进行无数据库调整 文件在线预览仅支持word/excel/ppt/pptx 4种文件的转换和预览 http://download.csdn.net/detail/u010589258/7004625#comment
本篇将详细介绍如何利用Aspose实现在线预览这些文件类型。 1. **Aspose.Words for .NET** Aspose.Words 是Aspose产品家族中的一个重要组件,专门用于处理Microsoft Word文档(.doc, .docx等)。通过这个库,你可以...
预览PPT时,C#可能使用了如Microsoft Office Interop库来与Office应用程序进行交互,将PPT转换为HTML或其他Web友好的格式。另一种方法是使用第三方库,如Aspose.Slides,它可以将PPT文件转换为图片序列,然后在...
java实现浏览器在线预览offic(doc、xls、ppt)和pdf文件,本人将例子集成到项目中,已成功。 技术原理:将文件先转换成pdf文件,再将pdf文件转换成swf文件,最后显示在浏览器上。 资源描述:本资源包括swftools...
在前端开发中,有时我们需要为用户提供预览PPT文件的功能,而无需依赖第三方服务或打开新的浏览器窗口。这种需求可以通过引入特定的预览插件来实现。本文将深入探讨一个名为“PPTXjs”的前端插件,它专门用于处理...
在IT行业中,尤其是在Web开发领域,提供用户友好的文件预览功能是十分常见的需求。Java作为广泛应用的服务器端编程语言,具有丰富的库和框架来处理各种任务,包括文档的在线预览。本篇将深入探讨如何使用Java实现PPT...
文件类型包括53个Java源代码文件、17个JAR包文件、15个PNG图片文件、13个JSP页面文件、7个XML配置文件、6个CSS样式文件、6个JavaScript脚本文件、4个Properties配置文件、2个SWF文件、2个JPG图片文件。该系统通过...
对于文件预览,主要涉及以下几个关键步骤: 1. **文件上传**:用户通过前端界面选择文件并提交,后端通过SpringBoot的`@PostMapping`注解接收文件。SpringBoot的`MultipartFile`类可以用来处理上传的文件。 2. **...