Java語言實現word轉PDF(10分鐘解決)
阿新 • • 發佈:2019-02-03
前言:
經常做OA辦公專案的同學一定和我一樣被各種線上的office操作整瘋了。基本上涉及到Java操作office的時候就會想到POI和openoffice.這兩種方案都是需要找各種jar包,然後用裡面繁雜的api。關鍵是做出來的檔案格式有各種各樣的問題,有時生成的檔案打不開,有時文件格式混亂。搞了好幾天的需求終於實現了,最後看到效果那一刻。。。唉呀媽呀 腦瓜疼 腦瓜疼
此時就需要另闢新徑了,得找個更專業的解決線上office操作的外掛——pageoffice。雖然pageoffice官網提供了大量功能,但是通過這篇部落格可以讓同學們省去學習時間,讓你10分鐘實現word轉PDF的功能。並且最重要的是本篇部落格後面會提供破解註冊碼
先看效果
點選另存為PDF按鈕就會開始轉PDF(如果不想點選按鈕也可以放在其他事件中自動轉PDF)
然後檢視轉換的PDF檔案,格式是非常標準的,和本地word轉出來的一模一樣
部署步驟(只需5步)
去剛才下載的整合檔案中找到lib,將裡面的內容放在專案web-inf的lib中引入jar包,然後將web.xml的pageoffice配置引入到自己專案的wb.xml中
2.在父頁面aaa.jsp(需要開啟文件的頁面)放一個a標籤或者button
寫a標籤之前先引入pageoffice需要的js檔案
<script type="text/javascript" src="/jquery.min.js"></script> <script type="text/javascript" src="/pageoffice.js" id="po_js_main"></script>
然後新增a標籤
<a href="javascript:POBrowser.openWindowModeless('word.jsp', 'width=1050px;height=900px;','id=er');">開啟word文件</a>
3.在父頁面同級目錄下建立一個word.jsp檔案
<%@ page language="java" import="java.util.*, com.zhuozhengsoft.pageoffice.*" pageEncoding="utf-8"%> <% PageOfficeCtrl pocCtrl=new PageOfficeCtrl(request); //設定伺服器頁面 pocCtrl.setServerPage(request.getContextPath()+"/poserver.zz"); //新增自定義按鈕 pocCtrl.addCustomToolButton("儲存", "Save()", 1); pocCtrl.addCustomToolButton("另存為PDF檔案", "SaveAsPDF()", 1); //設定儲存頁面 pocCtrl.setSaveFilePage("SaveFile.jsp"); String fileName = "template.docx"; String pdfName = fileName.substring(0, fileName.length() - 4) + ".pdf"; //開啟檔案 pocCtrl.webOpen(fileName, OpenModeType.docNormalEdit, "張佚名"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Word檔案轉換成PDF格式</title> <script type="text/javascript"> //儲存 function Save() { document.getElementById("PageOfficeCtrl1").WebSave(); } //另存為PDF檔案 function SaveAsPDF() { document.getElementById("PageOfficeCtrl1").WebSaveAsPDF(); document.getElementById("PageOfficeCtrl1").Alert("PDF檔案已經儲存到template.doc同級目錄下。"); <%--document.getElementById("div1").innerHTML = "<a href='OpenPDF.jsp?fileName=<%=pdfName %>'> 檢視另存的 pdf 檔案<a><br><br>";--%> document.getElementById("div1").innerHTML = "<a href='template.pdf'> 檢視另存的 pdf 檔案<a><br><br>"; } </script> </head> <body> <form id="form1"> <div id="div1"></div> <div style="width: auto; height: 700px;"> <%=pocCtrl.getHtmlCode("PageOfficeCtrl1")%> </div> </form> </body> </html>
4.在父頁面同級目錄下建立一個SaveFile.jsp檔案
<%@ page language="java"
import="java.util.*,com.zhuozhengsoft.pageoffice.*"
pageEncoding="utf-8"%>
<%
FileSaver fs = new FileSaver(request, response);
//儲存檔案到本地磁碟
fs.saveToFile(request.getSession().getServletContext().getRealPath(fs.getFileName()));
fs.close();
%>
5.新建一個名為template.docx的word檔案(如果新建的是doc檔案就將第三步的String fileName = "template.docx"程式碼改為String fileName = "template.doc";)放在父頁面同級目錄下.然後啟動專案直接訪問aaa.jsp點選連結.此時會提示安裝外掛,點選安裝成功後提示註冊,填寫相關資訊,填寫註冊碼CA1XB-MF7Y-12ST-PSBP2就可以開啟文件.
注意:這些只是演示級程式碼,大家可以去pageoffice官網下載示例程式碼直接將samples4資料夾扔到Tomcat的webapps下,啟動Tomcat,瀏覽器訪問http://localhost:8080/Samples4/index.html,檢視示例中的下面一個連結,直接看samples4資料夾下SaveAsPDF資料夾裡面的程式碼.
如有侵權,請聯絡小編