標籤:伺服器開發 document text 組件 bubuko host 工作 session path
最近遇到一個項目需要把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檔案。
以下為官網介紹:
調用PageOffice組件的FileMaker對象實現動態填充資料到word模板並轉為pdf的核心代碼如下:
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,查看樣本:二、34、FileMaker轉換單個文檔為PDF(以Word為例)
[轉載]java實現word轉pdf