zoukankan      html  css  js  c++  java
  • Java 将word转为pdf jacob方式

    package com.doctopdf;
    
    import java.io.File;
    
    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.ComThread;
    import com.jacob.com.Dispatch;
    import com.jacob.com.Variant;
    
    /**
     * 效果最好的一种方法,但是需要 window 环境,而且速度是最慢的需要安装 msofficeWord 
     * 
     * 下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=7 
     * jacob 包下载地址:http://sourceforge.net/projects/jacob-project/
     * 将解压出来的文件
     * jacob.jar 放在 E:jdk1.8.0_14jrelibext   这里使用自己的jdk安装位置
     * jacob.dll 放在 E:jdk1.8.0_14jrein       这里使用自己的jdk安装位置   
     * 如果没放或者放错位置,将出现报错  
     * 注: x86是指32位系统
     *    x64是指64位系统
     * 
     * @author u Y
     * 支持doc  docx文件转pdf
     */
    public class DocToPdf {
    
        private static final int wdFormatPDF = 17; // PDF 格式    17表示word转pdf 44表示execl转html
    
        public void wordToPDF(String sfileName, String toFileName) {
    
            System.out.println("启动 Word...");
            long start = System.currentTimeMillis();//转换开始时间
            ActiveXComponent app = null;
            Dispatch doc = null;
            try {
                app = new ActiveXComponent("Word.Application");
                app.setProperty("Visible", new Variant(false));
                Dispatch docs = app.getProperty("Documents").toDispatch();
                doc = Dispatch.call(docs, "Open", sfileName).toDispatch();
                System.out.println("打开文档..." + sfileName);
                System.out.println("转换文档到 PDF..." + toFileName);
                File tofile = new File(toFileName);
                if (tofile.exists()) {
                    tofile.delete();
                }
                // 作为 html 格式保存到临时文件: 17表示word转pdf 44表示execl转html
                Dispatch.call(doc, "SaveAs", toFileName, // FileName
                        wdFormatPDF);
              
                long end = System.currentTimeMillis();//转换结束时间
                System.out.println("转换完成..用时:" + (end - start) + "ms.");
    
            } catch (Exception e) {
                System.out.println("========Error:文档转换失败:" + e.getMessage());
            } finally {
                Dispatch.call(doc, "Close", false);
                System.out.println("关闭文档");
                if (app != null)
                    app.invoke("Quit", new Variant[] {});
            }
            // 如果没有这句话,winword.exe进程将不会关闭
            ComThread.Release();
        }
    
        public static void main(String[] args) {
            DocToPdf d = new DocToPdf();
            d.wordToPDF("C:\Users\Administrator\Desktop\毕业设计表结构设计.docx", "C:\Spring.pdf");
        }
    
    }

    需要添加    jacob.jar

  • 相关阅读:
    ASP.NET 分页数据源:: PagedDataSource //可分页数据源
    strtok
    FloydWarshall算法详解(转)
    Tom Clancy's Splinter Cell: Double Agent
    暴雪COO确认:星际争霸2.0要来了
    wxWidgets 2.8.0 released
    如饥似渴
    大乘法器遇见小乘法器
    GLEW 1.3.5 adds OpenGL 2.1 and NVIDIA G80 extensions
    DevIL真是好用得想哭
  • 原文地址:https://www.cnblogs.com/woshuaile/p/8458263.html
Copyright © 2011-2022 走看看