1. 程式人生 > >java實現word文件轉pdf

java實現word文件轉pdf

前端時間,專案需要自動生成word文件,用WordFreeMarker生成word文件後,又要求生成的文件能在瀏覽器瀏覽,思來想去,把word文件轉成pdf就好了,於是乎研究了一下。

將word文件轉化為PDF是專案中常見的需求之一,目前主流的方法可以分為兩大類,一類是利用各種Office應用進行轉換,譬如Microsoft Office、WPS以及LiberOffice,另一種是利用各種語言提供的對於Office文件讀取的介面(譬如Apache POI,jacob,docx4j,openoffice),這些要麼收費,要麼要裝外掛,要麼轉換之後樣式走形,亂碼等等。

我使用Aspose.Words for Java 可以匯出複雜WORD PDF HTML 多種資料格式 
官方下載地址:

http://www.aspose.com/java/word-component.aspx 

我所用的版本是aspose-words-14.9.0-jdk16。需要到的兩個jar包(所需jar包下載),也可以聯絡我,免費分享。

廢話不多說,直接上程式碼:

import java.io.File;
import java.io.FileOutputStream;



import java.io.IOException;

import org.slf4j.Logger;

import com.aspose.words.Document;
import com.aspose.words.SaveFormat;


/**
 * 
* @ClassName: Word2PdfUtilt
* @Description: PDF轉換工具類
* @author mzl
* @date 2018年7月30日 下午5:26:44
*
 */
public class Word2PdfUtilt {
	
	protected static Logger log = Log.get();
	
	public static void main(String[] args) {
       doc2pdf("D:\\Workspaces\\小花測試_20180731094521.doc","D:\\Workspaces\\test.pdf");

    }
	

    public static void doc2pdf(String inPath, String outPath) {
    	FileOutputStream os =null;
        try {
            File file = new File(outPath); // 新建一個空白pdf文件
            os = new FileOutputStream(file);
            Document doc = new Document(inPath); // Address是將要被轉化的word文件
            doc.save(os, SaveFormat.PDF);
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
        	if(os!=null){
        		try {
					os.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
        	}
        }
    }


}

轉成PDF格式後,圖片等樣式均沒有亂。