zoukankan      html  css  js  c++  java
  • java word文档转换PDF文件

    使用jacob 插件 

    链接: https://pan.baidu.com/s/1un6Hb2P4y3OhI3iHOgldrg 密码: j5v8

    这是jacob 插件下载地方 有需要的可以自行下载

    使用:

    首先 将文件中

    jacob-1.19-x86.dll  、jacob-1.19-x64.dll 文件放到jdk bin目录下,用户调用时启动插件功能

    Java代码中如下:

    package com.csnt.hbzpt.Helpper;
    
    import com.csnt.hbzpt.action.ComplaintHistory.ComplainFlowInfoSaveAction;
    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.ComThread;
    import com.jacob.com.Dispatch;
    import com.jacob.com.Variant;
    import com.smartdp.components.tracer.TracerFactory;
    import com.smartdp.components.tracer.interfaces.Tracer;
    
    import java.io.File;
    
    //import org.xhtmlrenderer.pdf.ITextRenderer;/
    
    
    /**
     * Created by Administrator on 2018/9/12.
     * word文档转换pdf
     */
    public class PdfGenerateHelper {
    
        static final int wdFormatPDF = 17;// PDF 格式
        public String wordToPDF(String docFileName, boolean removeOrgFile){
            String urlPdf="";
            long start = System.currentTimeMillis();
            ActiveXComponent app = null;
            Dispatch doc = null;
            try {
                app = new ActiveXComponent("Word.Application");
                app.setProperty("Visible", new Variant(false));
                Dispatch docs = (Dispatch) app.getProperty("Documents").toDispatch();
                String pdfName = docFileName.substring(docFileName.lastIndexOf("/")+1,docFileName.lastIndexOf(".doc"));
                String path=docFileName.substring(0,docFileName.lastIndexOf("/")+1);
                String toFileName = path+ pdfName + ".pdf";
                urlPdf=toFileName;
                doc = Dispatch.call(docs,  "Open" , docFileName).toDispatch();
                Dispatch.call(doc,
                        "SaveAs",
                        toFileName, // FileName
                        wdFormatPDF);
                long end = System.currentTimeMillis();
                System.out.println("转换完成..用时:" + (end - start) + "ms.");
                tracer.logInfo("转换完成..用时:" + (end - start) + "ms.");
            } catch (Exception e) {
                tracer.logInfo("========Error:文档转换失败:" + e.getMessage());
                System.out.println("========Error:文档转换失败:" + e.getMessage());
            } finally {
    
                Dispatch.call(doc,"Close",false);
                System.out.println("关闭文档");
                tracer.logInfo("关闭文档");
                if (app != null) {
                    app.invoke("Quit", new Variant[] {});
                }
                File orgFile = new File(docFileName);
        //转换完成之后是否要删除word    看自己需求
    //            if (orgFile.exists()) {
    //                orgFile.delete();
    //            }
            }
            //如果没有这句话,winword.exe进程将不会关闭
            ComThread.Release();
            return urlPdf;
        }
    
        public static void main(String[] args) {
        //调用测试
         PdfGenerateHelper pdf = new PdfGenerateHelper();
           String name="C:\Users/dell/Desktop/test/test.doc";
          pdf.wordToPDF(name,false);
        }
    
    }
            
    

      

  • 相关阅读:
    String判空效率比较
    myeclipse数据库逆向hibernate教程
    博客使用说明和我的学习心得(技术路线和书单)
    【小记】go如何判断key是否在map中
    MySQL必知必会笔记——MySQL其他操作
    MySQL必知必会笔记——查询的进阶知识
    MySQL必知必会笔记——查询的基础知识
    MySQL必知必会笔记-Mysql基本操作
    Linux学习笔记:Linux命令之权限管理命令
    Linux学习笔记:用户与用户组
  • 原文地址:https://www.cnblogs.com/wcnwcn/p/9663172.html
Copyright © 2011-2022 走看看