温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在java中使用jacob将word转换为pdf

发布时间:2021-01-21 16:05:27 来源:亿速云 阅读:296 作者:Leah 栏目:编程语言

怎么在java中使用jacob将word转换为pdf?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

具体内容如下

jacob 缺点:需要 window 环境,而且速度是最慢的需要安装 msofficeWord 以及 SaveAsPDFandXPS.exe ( word 的一个插件,用来把 word 转化为 pdf )

开发流程:

SaveAsPDFandXPS 下载地址

jacob 包下载地址:

1、先安装SaveAsPDFandXPS

2、下载 jacob 解压后存放路径:

jacob.jar 放在 C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext目录下
jacob.dll 放在 C:\Program Files\Java\jdk1.8.0_171\jre\bin 目录下

实现代码如下:

package com.casf.hn.core.util;

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 以及 SaveAsPDFandXPS.exe (
 * word 的一个插件,用来把 word 转化为 pdf,可以不用安装,本次未安装测试通过 )
 * 
 * 
 *
 */
public class WordToPdf {

 private static final int wdFormatPDF = 17; // PDF 格式

 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();
   }
   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) {
  WordToPdf d = new WordToPdf();
  d.wordToPDF("D:\\cssj\\xxxx.doc", "D:\\cssj\\xxxx.pdf");
 }

}

运行结果:

怎么在java中使用jacob将word转换为pdf

怎么在java中使用jacob将word转换为pdf

怎么在java中使用jacob将word转换为pdf

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI