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

java實現word轉pdf

網上有很多word轉pdf的工具和程式碼,比如:poi, itext, jacob, openoffice, xdocreport等等 我記得還有日本一個開源工具word轉pdf。

今天說說我自己專案中使用的是xdocreport真正的核心程式碼比較簡單。先上核心程式碼吧。

package com.icitic.jd.common.convert;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.poi.xwpf.converter.pdf.PdfConverter;
import org.apache.poi.xwpf.converter.pdf.PdfOptions;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

public class DocxToPdf {

public static void convertPdf(String docxFilePath,String pdfFilePath) throws Exception{
File docxFile=new File(docxFilePath);
File pdfFile=new File(pdfFilePath);

//轉換pdf檔案
if(docxFile.exists()){
if(!pdfFile.exists()){
   InputStream inStream=new  FileInputStream(docxFilePath);
       XWPFDocument document = new XWPFDocument(inStream);
   //HWPFDocument document = new HWPFDocument(inStream);
   OutputStream out = new FileOutputStream(pdfFilePath); 
           PdfOptions options = PdfOptions.create();           
           ExtITextFontRegistry fontProvider=ExtITextFontRegistry.getRegistry();
           options.fontProvider(fontProvider);
           PdfConverter.getInstance().convert(document, out, options);
}else{
System.out.println("PDF檔案已存在,無需再次轉換");
}
}else{
}
}

}

因為使用了XWPFDocument 這個 只能支援docx轉pdf 不支援doc轉 我改成HWPFDocument好像也不行哦

maven中引用jar  其實只有後面兩個jar包 不過有一些依賴的jar哦 記得下載 第一個模板引擎引用的jar的使用freemarker技術生產動態word才使用的。

<!-- 模版引擎用到的jar包 -->  
<dependency>  
     <groupId>org.freemarker</groupId>  
     <artifactId>freemarker</artifactId>  
     <version>2.3.25-incubating</version>  
 </dependency>


<dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
            <version>2.1.7</version>
            <type>jar</type>
        </dependency>


        <dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>org.apache.poi.xwpf.converter.pdf</artifactId>
<version>1.0.4</version>
</dependency>