分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

以poi实现PPT转html

发布时间:2023-09-06 02:16责任编辑:白小东关键词:暂无标签
哈哈,终于两个月了(笔者不玩网游,虽然脾气越来越不好,但是生活越来越充实)。不扯了,今晚还要再写一篇呢,直接上代码。

 ???????????package com.css.java.learning.massbag; ???????????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.BufferedWriter; ???????????import java.io.File; ???????????import java.io.FileInputStream; ???????????import java.io.FileNotFoundException; ???????????import java.io.FileOutputStream; ???????????import java.io.IOException; ???????????import java.io.OutputStreamWriter; ???????????import java.util.ArrayList; ???????????import java.util.List; ???????????import org.apache.poi.hslf.model.TextRun; ???????????import org.apache.poi.hslf.usermodel.RichTextRun; ???????????import org.apache.poi.hslf.usermodel.SlideShow; ???????????/** ????????????* ppt转html ????????????* @author Red_Ant ????????????* 20180925 ????????????*/ ???????????public class PptToHtml { ???????????????private static void pptToPicture(String tempContextUrl, String outPath){ ???????????????????//文件夹名 ???????????????????List<String> imgList = new ArrayList<String>(); ???????????????????File file = new File(tempContextUrl); ???????????????????File folder = new File(outPath + File.separator + "20180925"); ???????????????????try { ??????????????????????????folder.mkdirs(); ???????????????????????????????????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++) { ???????????????????????????????????????????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++){ ?????????????????????????????????????????????????????????????????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); ??????????????????????????????????????????????String imgName = File.separator + "20180925" + File.separator +"pict_"+ (i + 1) + ".jpeg"; ???????????????????????????????????????????FileOutputStream out = new FileOutputStream(outPath + imgName); ??????????????????????????????????????????????javax.imageio.ImageIO.write(img, "jpeg", out); ???????????????????????????????????????????out.close(); ??????????????????????????????????????????????imgList.add("20180925" + File.separator +"pict_"+ (i + 1) + ".jpeg"); ???????????????????????????????????} ???????????????????????????} catch (FileNotFoundException e) { ???????????????????????????????e.printStackTrace(); ???????????????????????????} catch (IOException e) { ???????????????????????????????e.printStackTrace(); ???????????????????????????} ???????????????????createPPTHtml(outPath,imgList, tempContextUrl); ???????????????} ???????????????/**自己创建的html代码 ????????????????* 原理上就是,把上一步ppt转的图片 ????????????????* 以html的方式呈现出来 ????????????????*/ ???????????????public static void createPPTHtml(String wordPath,List<String> imgList,String tempContextUrl){ ???????????????????StringBuilder sb = new StringBuilder("<!doctype html><html><head><meta charset=‘utf-8‘><title>无标题文档</title></head><body><div align=\"center\">"); ???????????????????if (imgList != null && !imgList.isEmpty()) { ???????????????????????for (String img : imgList) { ???????????????????????????sb.append("<img src=‘" + img + "‘ /><br>"); ???????????????????????} ???????????????????} ???????????????????sb.append("</div></body></html>"); ???????????????????try { ???????????????????????File file = new File(wordPath + File.separator + "20180925.html"); ???????????????????????BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"UTF-8")); ???????????????????????bufferedWriter.write(sb.toString()); ???????????????????????bufferedWriter.close(); ???????????????????} catch (IOException e) { ???????????????????????e.printStackTrace(); ???????????????????} ???????????????} ???????????????public static void main(String[] args) { ???????????????????pptToPicture("D:\\red_ant_file\\20180925\\阿里巴巴网店的各大模块.ppt", ???????????????????????????"D:\\red_ant_file\\20180925"); ???????????????} ???????????}

【后话】
awt包下的代码基本用不到了,现在出现仅仅是因为笔者比较无聊,纯属娱乐。
运行后。

以poi实现PPT转html

原文地址:http://blog.51cto.com/13479739/2285594

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved