• 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

  • 相关阅读:
    java_十进制数转换为二进制,八进制,十六进制数的算法
    vim常用命令 vim键盘布局
    百度HTTPS加密搜索有什么用?
    delete
    hadoop2的automatic HA+Federation+Yarn配置的教程
    MinGW GCC下sleep()函数问题
    delete
    8天学通MongoDB——第一天 基础入门
    8天学通MongoDB——第六天 分片技术
    8天学通MongoDB——第五天 主从复制
  • 原文地址:https://www.cnblogs.com/woshuaile/p/8458263.html
Copyright © 2020-2023  润新知