PageOffice6最簡整合程式碼(Asp.Net)

qianxi發表於2024-04-18

本文描述了PageOffice產品在普通的Asp.Net專案中如何整合呼叫。

  1. 新建Asp.Net專案:PageOffice6-Net-Simple
  2. 在您的web專案的“依賴項-包-管理NuGet程式包”中搜尋到“Zhuozhengsoft.PageOfficeNet"程式後安裝最新版本。
  3. 複製pageoffice客戶端安裝程式到專案的bin資料夾下。
  • 客戶端是windows環境:複製posetup_6.x.x.x.exe到bin資料夾下;
  • 客戶端是國產作業系統環境:複製對應晶片的PageOffice客戶端deb安裝包到bin資料夾下;

PageOffice客戶端安裝程式下載地址:https://gitee.com/pageoffice/pageoffice6-client/releases

  1. 配置Web.Config檔案,新增PageOffice相關的handler
<system.webServer>
  <handlers>
    <add name="poserver" path="/poserver.zz" verb="*" type="PageOffice.POServer.ServerHandler"/>
    <add name="poclient" path="/poclient" verb="GET" type="PageOffice.POServer.ServerHandler"/>
    <add name="sealsetup" path="/sealsetup.exe" verb="GET" type="PageOffice.POServer.ServerHandler"/>
    <add name="pageoffice" path="/pageoffice.js" verb="GET" type="PageOffice.POServer.ServerHandler"/>
    <add name="adminseal" path="/adminseal.zz" verb="*" type="PageOffice.POServer.AdminSealHandler"/>
    <add name="loginseal" path="/loginseal.zz" verb="*" type="PageOffice.POServer.AdminSealHandler"/>
  </handlers>
</system.webServer>
  1. 在D盤根目錄下準備一個有內容的test.docx檔案,新建Word.aspx並呼叫PageOffice線上開啟此檔案。

Word.aspx.cs程式碼如下:

namespace PageOffice6_Net_Simple
{
    public partial class Word : System.Web.UI.Page
    {
        public PageOffice.PageOfficeCtrl poCtrl = new PageOffice.PageOfficeCtrl();
        protected void Page_Load(object sender, EventArgs e)
        {
            poCtrl.SaveFilePage = "SaveFile.aspx";// 設定處理檔案儲存的頁面
            poCtrl.WebOpen("D:\\test.docx", PageOffice.OpenModeType.docNormalEdit, "Tom");
        }
    }
}

Word.aspx中的html程式碼如下:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title></title>
  <script type="text/javascript">
      function Save() {
          pageofficectrl.WebSave();
      }
      function OnPageOfficeCtrlInit() {
          pageofficectrl.AddCustomToolButton("儲存", "Save", 1);
      }
  </script>
</head>
<body>
  <div style="width:auto;height:98vh;">
    <%=poCtrl.GetHtmlCode()%> 
  </div>
</body>
</html>
  1. 新建SaveFile.aspx處理客戶端儲存上傳的檔案流。SaveFile.aspx.cs檔案的程式碼如下:
namespace PageOffice6_Net_Simple
{
    public partial class SaveFile : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            PageOffice.FileSaver fs = new PageOffice.FileSaver();
            fs.SaveToFile("D:\\" + fs.FileName);
            fs.Close();
        }
    }
}
  1. 在需要點選超連結實現線上開啟檔案的頁面(比如:index.html)中新增pageoffice.js檔案的引用。
<script type="text/javascript" src="/pageoffice.js"></script>

注意
pageoffice.js檔案來自於Web.Config配置的handler。

  1. 然後在頁面中新增一個超連結,點選超連結呼叫POBrowser物件的openWindow方法,彈出新瀏覽器視窗訪問Word.aspx線上開啟檔案,程式碼如下:
<a href="javascript:POBrowser.openWindow('Word.aspx','width=1150px;height=900px;');">
    線上開啟文件
</a>
  1. 啟動專案,點選“線上開啟文件”超連結,檢視線上開啟編輯儲存Office檔案的效果。

參考連結:PageOffice最簡整合程式碼(Asp.Net)

相關文章