本文描述了PageOffice產品在普通的Asp.Net專案中如何整合呼叫。
PageOffice 國產版 :支援信創系統,支援銀河麒麟V10和統信UOS,支援X86(intel、兆芯、海光等)、ARM(飛騰、鯤鵬、麒麟等)、longarch晶片架構。
- 新建Asp.Net專案:PageOffice6-Net-Simple
- 在您的web專案的“依賴項-包-管理NuGet程式包”中搜尋到“Zhuozhengsoft.PageOfficeNet"程式後安裝最新版本。
- 複製pageoffice客戶端安裝程式到專案的bin資料夾下。
- 客戶端是windows環境:複製posetup_6.x.x.x.exe到bin資料夾下;
- 客戶端是國產作業系統環境:複製對應晶片的PageOffice客戶端deb安裝包到bin資料夾下;
PageOffice客戶端安裝程式下載地址:https://gitee.com/pageoffice/pageoffice6-client/releases
- 配置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>
- 在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>
- 新建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();
}
}
}
- 在需要點選超連結實現線上開啟檔案的頁面(比如:index.html)中新增pageoffice.js檔案的引用。
<script type="text/javascript" src="/pageoffice.js"></script>
注意
pageoffice.js檔案來自於Web.Config配置的handler。
- 然後在頁面中新增一個超連結,點選超連結呼叫POBrowser物件的openWindow方法,彈出新瀏覽器視窗訪問Word.aspx線上開啟檔案,程式碼如下:
<a href="javascript:POBrowser.openWindow('Word.aspx','width=1150px;height=900px;');">
線上開啟文件
</a>
- 啟動專案,點選“線上開啟文件”超連結,檢視線上開啟編輯儲存Office檔案的效果。
參考連結:PageOffice最簡整合程式碼(Asp.Net)