溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在java中使用jacob將word轉(zhuǎn)換為pdf

發(fā)布時間:2021-01-21 16:05:27 來源:億速云 閱讀:320 作者:Leah 欄目:編程語言

怎么在java中使用jacob將word轉(zhuǎn)換為pdf?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

具體內(nèi)容如下

jacob 缺點:需要 window 環(huán)境,而且速度是最慢的需要安裝 msofficeWord 以及 SaveAsPDFandXPS.exe ( word 的一個插件,用來把 word 轉(zhuǎn)化為 pdf )

開發(fā)流程:

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 目錄下

實現(xiàn)代碼如下:

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 環(huán)境,而且速度是最慢的需要安裝 msofficeWord 以及 SaveAsPDFandXPS.exe (
 * word 的一個插件,用來把 word 轉(zhuǎn)化為 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("轉(zhuǎn)換文檔到 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("轉(zhuǎn)換完成..用時:" + (end - start) + "ms.");

  } catch (Exception e) {
   System.out.println("========Error:文檔轉(zhuǎn)換失?。?quot; + e.getMessage());
  } finally {
   Dispatch.call(doc, "Close", false);
   System.out.println("關(guān)閉文檔");
   if (app != null)
    app.invoke("Quit", new Variant[] {});
  }
  // 如果沒有這句話,winword.exe進(jìn)程將不會關(guān)閉
  ComThread.Release();
 }

 public static void main(String[] args) {
  WordToPdf d = new WordToPdf();
  d.wordToPDF("D:\\cssj\\xxxx.doc", "D:\\cssj\\xxxx.pdf");
 }

}

運行結(jié)果:

怎么在java中使用jacob將word轉(zhuǎn)換為pdf

怎么在java中使用jacob將word轉(zhuǎn)換為pdf

怎么在java中使用jacob將word轉(zhuǎn)換為pdf

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI