1. 程式人生 > >Java語言實現word轉PDF(10分鐘解決)

Java語言實現word轉PDF(10分鐘解決)

前言:

經常做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資料夾裡面的程式碼.

如有侵權,請聯絡小編