zoukankan      html  css  js  c++  java
  • java 实现Word或Excel 转Pdf

    1:首先需要引入相关的jar

     word转pdf需要引入 aspose-words-15.8.0-jdk16.jar

    下载JAR包 
    Word 
    http://note.youdao.com/noteshare?id=1e73ab1c91abad338271d50a881165c2

     excel转pdf需要引入aspose-cells-8.5.2.jar

    Excel 
    http://note.youdao.com/noteshare?id=f75d87445106ea6ca6b54cfa58bc4fb2

    2:引入License.xml文件(备注:此License文件只能破解Word版本),将其放入WEB-INF/classes/文件目录下

    <License>
    <Data>
    <Products>
    <Product>Aspose.Total for Java</Product>
    <Product>Aspose.Words for Java</Product>
    </Products>
    <EditionType>Enterprise</EditionType>
    <SubscriptionExpiry>20991231</SubscriptionExpiry>
    <LicenseExpiry>20991231</LicenseExpiry>
    <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
    </Data>
    <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
    </License>

    3:java代码编写

    package com.svse.util;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import com.aspose.cells.Workbook;
    import com.aspose.words.Document;
    import com.aspose.words.License;

    /**
    * Word或Excel 转Pdf 帮助类
    * @author lenovo
    * 备注:需要引入 aspose-words-15.8.0-jdk16.jar / aspose-cells-8.5.2.jar
    */
    public class PdfUtil {

        private static boolean getLicense() {
            boolean result = false;
           try {
               InputStream is = PdfUtil.class.getClassLoader().getResourceAsStream("license.xml"); // license.xml应放在..WebRootWEB-INFclasses路径下
               License aposeLic = new License();
              aposeLic.setLicense(is);
              result = true;
           } catch (Exception e) {
             e.printStackTrace();
          }
         return result;
       }

       /**
      * @param wordPath 需要被转换的word全路径带文件名
      * @param pdfPath 转换之后pdf的全路径带文件名
      */
      public static void doc2pdf(String wordPath, String pdfPath) {
         if (!getLicense()) { // 验证License 若不验证则转化出的pdf文档会有水印产生
            return;
         }
        try {
            long old = System.currentTimeMillis();
            File file = new File(pdfPath); //新建一个pdf文档
            FileOutputStream os = new FileOutputStream(file);
            Document doc = new Document(wordPath); //Address是将要被转化的word文档
            doc.save(os, com.aspose.words.SaveFormat.PDF);//全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换
            long now = System.currentTimeMillis();
            os.close();
            System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒"); //转化用时
            } catch (Exception e) {
                e.printStackTrace();
            }
         }

       /**
       * @param excelPath 需要被转换的excel全路径带文件名
       * @param pdfPath 转换之后pdf的全路径带文件名
       */
        public static void excel2pdf(String excelPath, String pdfPath) {
            if (!getLicense()) { // 验证License 若不验证则转化出的pdf文档会有水印产生
            return;
           }
          try {
             long old = System.currentTimeMillis();
            Workbook wb = new Workbook(excelPath);// 原始excel路径
            FileOutputStream fileOS = new FileOutputStream(new File(pdfPath));
            wb.save(fileOS, com.aspose.cells.SaveFormat.PDF);
            fileOS.close();
            long now = System.currentTimeMillis();
               System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒"); //转化用时
            } catch (Exception e) {
              e.printStackTrace();
           }
         }

          public static void main(String[] args) {

              //word 和excel 转为pdf
              String filePaths="D:/logs/Java多线程大合集.doc";
              String fileName="zsqexcel78";
             String pdfPath="D:/logs/"+fileName+".pdf";
             //doc2pdf(filePaths, pdfPath);//filePaths需要转换的文件位置 pdfPath为存储位置
             String excel2pdf="D:/logs/excelToPdf.xlsx";
             excel2pdf(excel2pdf,pdfPath);
          }
     }

  • 相关阅读:
    Python一键安装缺失库
    Python画樱花树❀
    Python时间模块time
    Python的画五角星
    力扣225.用队列实现栈
    STL是个啥?
    如何使用递归遍历对象获得value值
    JS操作未跨域iframe里的DOM
    CSS3D效果
    前端轮播小结
  • 原文地址:https://www.cnblogs.com/zhaosq/p/9796255.html
Copyright © 2011-2022 走看看