java實現word轉pdf

最近遇到一個項目須要把word 轉成pdf,百度了一下網上的方案有不少,好比虛擬打印、給word 裝擴展插件等,這些方案都依賴於ms word 程序,在java代碼中也得使用諸如jacob或jcom這類java com bridge,使得服務器開發受限於win平臺,並且部署起來也很麻煩。後來在某論壇看到了一個openoffice+jodconverter的轉換方案,能夠完成word到PDF的轉換工做,服務器開發端須要安裝openoffice,可是需求一步額外的操做--須要在服務器開發上的某個端口提供一個openoffice服務,這對部署起來顯得麻煩了點,貌似也不太安全。
  偶然機會發現了PageOffice組件也能夠實現word轉pdf功能。並且不僅是簡單的把word轉爲pdf格式,還能夠支持動態填充數據到word模板文件而後再轉爲pdf文件。
  如下爲官網介紹:html

  

  調用PageOffice組件的FileMaker對象實現動態填充數據到word模板並轉爲pdf的核心代碼以下:java

複製代碼

FileMakerCtrl fmCtrl = new FileMakerCtrl(request);
    fmCtrl.setServerPage(request.getContextPath()+"/poserver.zz");
    WordDocument doc = new WordDocument();
    doc.openDataRegion("PO_company").setValue("北京某某有限公司");//給數據區域賦值,即把數據填充到模板中相應的位置
    fmCtrl.setSaveFilePage("/savepdf"); //保存pdf的action或RequestMapping方法
    fmCtrl.setWriter(doc);
    fmCtrl.fillDocumentAsPDF("doc/template.doc", DocumentOpenType.Word, "123.pdf");//填充word模板並轉爲pdf

複製代碼

  保存pdf的action或RequestMapping方法(/savepdf)的代碼:
FileSaver fs = new FileSaver(request, response);
    fs.saveToFile(request.getSession().getServletContext().getRealPath("doc") +"/"+ fs.getFileName());
    fs.close();

  示例源碼及效果:http://www.zhuozhengsoft.com/dowm/,下載PageOffice for Java,解壓後,拷貝Samples4文件夾到Tomcat的Webapps目錄下,訪問:http://localhost:8080/Samples4/index.html,查看示例:2、3四、FileMaker轉換單個文檔爲PDF(以Word爲例) 安全

相關文章
相關標籤/搜索