专栏首页带你回家word,ppt,excel转pdf,pdf转html工具类搭建

word,ppt,excel转pdf,pdf转html工具类搭建

我看到很多需求要求word,excel,ppt,pptx转pdf等工具类。还有就是pdf转图片转html这里介绍一个这个工具类。

引入pom.xml

 <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-pdf</artifactId>
            <version>11.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>words</artifactId>
            <version>15.9.0</version>
        </dependency>
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-slides</artifactId>
            <version>15.9.0</version>
        </dependency>

工具类代码:

package com.lvic.prsp.common.util;

import com.aspose.words.Document;
import com.aspose.words.License;
import com.aspose.words.SaveFormat;
import com.aspose.slides.*;
import org.apache.commons.io.FileUtils;
import org.apache.log4j.Logger;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.text.DecimalFormat;

/**
 * 说明:
 *
 * @version 创建时间:2016年9月16日 下午2:40:43
 */
public class FileConvertUtils {
    private static Logger logger = Logger.getLogger(FileConvertUtils.class);

    /**
     * 获取word licence
     *
     * @return
     */
    private static boolean getWordLicense() {

        InputStream license = null;

        try {
            license = FileConvertUtils.class.getClassLoader().getResourceAsStream("license.xml");// license路径
            License aposeLic = new License();
            aposeLic.setLicense(license);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error(e.getMessage(), e);
            return false;
        } finally {
            if (license != null) {
                try {
                    license.close();
                } catch (Exception ex) {
                    logger.info(ex);
                }
            }
        }
        return true;
    }

    /**
     * 获取pdf licence
     *
     * @return
     */
    private static boolean getPdfLicense() {
        InputStream license = null;

        try {
            license = FileConvertUtils.class.getClassLoader().getResourceAsStream("license.xml");// license路径
            com.aspose.pdf.License aposeLic = new com.aspose.pdf.License();
            aposeLic.setLicense(license);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error(e.getMessage(), e);
            return false;
        } finally {
            if (license != null) {
                try {
                    license.close();
                } catch (Exception ex) {
                    logger.info(ex);
                }
            }
        }
        return true;
    }

    /**
     * 获取ppt licence
     *
     * @return
     */
    private static boolean getPptLicense() {
        InputStream license = null;

        try {
            license = FileConvertUtils.class.getClassLoader().getResourceAsStream("license.xml");// license路径
            com.aspose.slides.License aposeLic = new com.aspose.slides.License();
            aposeLic.setLicense(license);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error(e.getMessage(), e);
            return false;
        } finally {
            if (license != null) {
                try {
                    license.close();
                } catch (Exception ex) {
                    logger.info(ex);
                }
            }
        }
        return true;
    }

    /**
     * word转pdf
     *
     * @return
     */
    public static boolean wordToPdf(String wordPath, String pdfPath) {
        // 验证License 若不验证则转化出的pdf文档会有水印产生
        if (!getWordLicense()) {
            return false;
        }

        FileOutputStream os = null;

        boolean res = false;

        try {

            os = new FileOutputStream(pdfPath);
            // 转化的word文档
            com.aspose.words.Document doc = new com.aspose.words.Document(wordPath);
            doc.save(os, SaveFormat.PDF);

            res = true;

        } catch (Exception e) {
            logger.error(e);
            throw new RuntimeException(e);
        } finally {
            if (os != null) {
                try {
                    os.close();
                } catch (Exception ex) {
                    logger.info(ex);
                }
            }
        }

        return res;
    }

    /**
     * ppt转pdf
     *
     * @return
     */
    public static boolean pptToPdf(String pptPath, String pdfPath) {
        // 验证License 若不验证则转化出的pdf文档会有水印产生
        if (!getPptLicense()) {
            return false;
        }

        FileOutputStream os = null;

        boolean res = false;

        try {

            os = new FileOutputStream(pdfPath);
            // 转化的ppt文档
            com.aspose.slides.Presentation doc = new com.aspose.slides.Presentation(pptPath);
            doc.save(os, com.aspose.slides.SaveFormat.Pdf);

            res = true;

        } catch (Exception e) {
            logger.error(e);
            throw new RuntimeException(e);
        } finally {
            if (os != null) {
                try {
                    os.close();
                } catch (Exception ex) {
                    logger.info(ex);
                }
            }
        }

        return res;
    }

    /**
     * pdf转html
     *
     * @return
     */
    public static boolean pdfToHtml(String pdfPath, String htmlPath) {
        // 验证License
        if (!getPdfLicense()) {
            return false;
        }

        com.aspose.pdf.Document pdfDocument = null;

        boolean res = false;

        try {
            //pdf文档
            pdfDocument = new com.aspose.pdf.Document(pdfPath);
            //html转换选项
            com.aspose.pdf.HtmlSaveOptions options = new com.aspose.pdf.HtmlSaveOptions();
            //光栅图像保存模式
            options.RasterImagesSavingMode = com.aspose.pdf.HtmlSaveOptions.RasterImagesSavingModes.AsEmbeddedPartsOfPngPageBackground;
            //保存文档
            pdfDocument.save(htmlPath, options);

            res = true;
        } catch (Exception e) {
            logger.info(pdfPath + "转换pdf失败,目标路径:" + htmlPath);
            logger.info(e);
            return false;
        } finally {
            if (pdfDocument != null) {
                try {
                    pdfDocument.close();
                } catch (Exception ex) {
                    logger.info(ex);
                }
            }
        }
        return res;
    }

    /**
     * pdf转图片
     *
     * @param pdfPath
     * @param imgPath
     * @return
     */
    public static String pdfToImages(String pdfPath, String imgPath, String imgPrefix) {

        // 验证License
        if (!getPdfLicense()) {
            return null;
        }

        String imageList="";

        com.aspose.pdf.Document doc = null;

        try {
            doc = new com.aspose.pdf.Document(pdfPath);

            if (doc == null) {
                throw new Exception("pdf文件无效或者pdf文件被加密!");
            }

            //从PDF文档的第几页开始转换
            int startPageNum = 1;
            //从PDF文档的第几页开始停止转换
            int endPageNum = doc.getPages().size();

            //设置图片的像素,数字越大越清晰,如果为0,默认值为128,建议最大值不要超过1024
            com.aspose.pdf.devices.Resolution resolution = new com.aspose.pdf.devices.Resolution(128);
            com.aspose.pdf.devices.JpegDevice jpegDevice = new com.aspose.pdf.devices.JpegDevice(resolution, 100);

            for (int i = startPageNum; i <= endPageNum; i++) {
                doc.getPages().get_Item(i).sendTo(jpegDevice, imgPath + "/" + imgPrefix + "_" + new DecimalFormat("000").format(i) + ".jpg");

                if (i == 0) {
                    imageList = imgPrefix + "_" + new DecimalFormat("000").format(i) + ".jpg";
                } else {
                    imageList = imageList + "," + imgPrefix + "_" + new DecimalFormat("000").format(i) + ".jpg";
                }

            }

        } catch (Exception ex) {
            logger.info(ex);
        } finally {
            if (doc != null) {
                try {
                    doc.close();
                } catch (Exception ex) {
                    logger.info(ex);
                }
            }
        }

        return imageList;
    }

    public static void main(String[] args) {
    	FileConvertUtils utils = new FileConvertUtils();
    	
    	utils.pptToPdf("D:\\test.ppt","D:\\ppttest1111111111.pdf");
	}

}

这其中需要有license这里就不公布了!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Nginx 配置vue项目访问目录后,刷新404解决方案

    在浏览器中直接访问www.test.com/api1/login会404。但如果你先访问www.test.com后再点“登录" 跳转到www.test.com/...

    斯文的程序
  • mySql问题

    SELECT DATA_LIST.* ,CAST((@rowNum:=@rowNum+1) AS CHAR) AS ROWNO FROM (

    斯文的程序
  • Adobe LiveCycle Designer ES4 表格绑定数据动态增加行

    https://my.oschina.net/960823/blog/903856

    斯文的程序
  • Python分布式爬虫-必须掌握的Docker基础!

    大家都知道在性能方面,Linux系统是远远优于Windows系统的,所以我们整个分布式爬虫的部署也是在Linux的子系统centos上,所以大家都要...

    JAVAandPython君
  • Docker学习总结——理解Docker与安装(一) 顶

    Docker 是一个开源的应用容器引擎(软件工业上的集装箱技术),让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上...

    wuweixiang
  • Docker 入门

    Docker 使用 Google 公司推出的 Go 语言 进行开发实现,诞生于2013年初。基于 Linux 内核的 cgroup,namespace,以及 A...

    分母为零
  • 【分享吧】带你初识Docker

    一、引言 如今,Docker作为业界领先的轻量级虚拟化容器管理引擎,给全球开发者提供了一种新颖、便捷的软件集成测试与部署之道。Docker借助容器技术彻底释放了...

    企鹅号小编
  • 可能是把Docker的概念讲的最清楚的一篇文章

    本文只是对Docker的概念做了较为详细的介绍,并不涉及一些像Docker环境的安装以及Docker的一些常见操作和命令。

    用户2164320
  • 后端技术杂谈9:先搞懂Docker核心概念吧

    本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看

    Java技术江湖
  • Docker 1.9版本修复互联和存储的缺陷

    Docker 1.9发布了,并且它修复了Docker用户长期以来的顽疾:互联(Networking)。 Multi-Host Docker Networking...

    CSDN技术头条

扫码关注云+社区

领取腾讯云代金券