软件编程
位置:首页>> 软件编程>> java编程>> java利用jacob将word转pdf

java利用jacob将word转pdf

作者:老虎的博客  发布时间:2023-02-05 08:23:03 

标签:java,jacob,word,pdf

本文实例为大家分享了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

来源:https://blog.csdn.net/qq493820798/article/details/80420140

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com