java實現word文件轉pdf
阿新 • • 發佈:2018-11-05
前端時間,專案需要自動生成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格式後,圖片等樣式均沒有亂。