• java实现word转pdf


    package cn.net.cobot.health.web.export.helper;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    
    import org.apache.commons.lang3.StringUtils;
    import org.apache.tika.io.IOUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import com.aspose.words.Document;
    import com.aspose.words.License;
    import com.aspose.words.PdfSaveOptions;
    import com.aspose.words.SaveFormat;
    
    import cn.net.cobot.health.web.util.report.AsposeUtil;
    
    public class AsposeHelper {
        private static Logger logger = LoggerFactory.getLogger(AsposeHelper.class);
    
        /**
         * word转pdf
         *
         * @param wordPath        word文件路径-含扩展名
         * @param pdfPath         转换后pdf文件保存的路径-含扩展名
         * @param includeBookmark 转换后的pdf文件中是否包含目录
         * @return String<br>
         *         为null,成功<br>
         *         不是null,失败信息
         */
        public static String convertWord2Pdf(String wordPath, String pdfPath, boolean includeBookmark) {
            try {
                getLicense();
            } catch (Exception e) {
                //if (logger.isErrorEnabled()) {
                    logger.error("aspose license无效", e);
                //}
                return "aspose license无效";
            }
            if (StringUtils.isBlank(wordPath) || StringUtils.isBlank(pdfPath)) {
                String err = "参数无效:请指定word文件名或者pdf文件名";
                //if (logger.isErrorEnabled()) {
                    logger.error(err);
                //}
                return err;
            }
            String ret = null;
            long st = System.currentTimeMillis();
            File pdfFile = new File(pdfPath);
            Document asposeDoc = null;
            FileOutputStream outputStream = null;
            try {
                outputStream = new FileOutputStream(pdfFile);
                asposeDoc = new Document(wordPath);
                PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
                // 输出pdf格式文档
                pdfSaveOptions.setSaveFormat(SaveFormat.PDF);
                if (includeBookmark) {
                    // 设置3级doc书签需要保存到pdf的heading中
                    pdfSaveOptions.getOutlineOptions().setHeadingsOutlineLevels(4);
                    // 设置pdf中默认展开1级
                    pdfSaveOptions.getOutlineOptions().setExpandedOutlineLevels(1);
                }
                asposeDoc.save(outputStream, pdfSaveOptions);
                long end = System.currentTimeMillis();
                if (logger.isInfoEnabled()) {
                    logger.info("word转pdf[{}目录]:{},用时{}ms", (includeBookmark ? "" : "不含"), wordPath, (end - st));
                }
                ret = null;
            } catch (Exception e) {
                //if (logger.isErrorEnabled()) {
                    logger.info("word转pdf异常[" + (includeBookmark ? "" : "不含") + "目录]:" + wordPath, e);
                //}
                ret = "word转pdf异常";
            } finally {
                IOUtils.closeQuietly(outputStream);
            }
            return ret;
        }
    
        private static void getLicense() throws Exception {
            try (InputStream is = AsposeUtil.class.getClassLoader()
                    .getResourceAsStream("Aspose.Total.Product.Family.lic")) {
                License license = new License();
                license.setLicense(is);
            }
        }
    }
  • 相关阅读:
    NSCharacterSet 最经常使用的使用方法
    IOS
    hdu 3117 Fibonacci Numbers
    Hibernate5配置与使用具体解释
    SDNU 1206.蚂蚁感冒 【代码如此简单,思维练习】【7月29】
    2048游戏分析、讨论与扩展
    hash_set和hash_map
    实现邮箱找回的思路分析
    学习OpenCV——粒子滤波(网上两篇文章总结)
    学习OpenCV——配置CUDA环境
  • 原文地址:https://www.cnblogs.com/lxz123/p/16164126.html
Copyright © 2020-2023  润新知