PageOffice6最簡集成代碼(.NetCore)

本文描述了PageOffice產品在.NetCore項目中如何集成調用。

  1. 新建.NetCore項目:PageOffice6-Net-Core-Simple
  2. 在此項目的“依賴項-包-管理NuGet程序包”中搜索到“Zhuozhengsoft.PageOffice"程序後安裝最新版本。
  3. 下載PageOffice客戶端安裝程序。
  • windows客戶端安裝程序:posetup_6.x.x.x.exe;
  • 國產操作系統客戶端安裝程序:對應芯片的PageOffice客戶端deb安裝包;

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

  1. 拷貝PageOffice客戶端安裝程序到項目的bin目錄下(項目的生成目錄,比如:bin\Debug\net5.0)

  2. 修改Startup.cs文件,添加PageOffice服務器端程序的相關配置,代碼如下:

  public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  {
      ...
      app.UseMiddleware<PageOfficeNetCore.POServer.ServerHandlerMiddleware>();
  }

如果是.Net6項目,就在Program.cs文件中添加代碼:app.UseMiddleware<PageOfficeNetCore.POServer.ServerHandlerMiddleware>();

  1. 在D盤根目錄下準備一個有內容的test.docx文件。
  2. 新建WordController,並編寫代碼在線打開test.docx。WordController.cs代碼如下:
public class WordController : Controller
{
    public IActionResult Index()
    {
        PageOfficeNetCore.PageOfficeCtrl poCtrl = new PageOfficeNetCore.PageOfficeCtrl(Request);
        poCtrl.SaveFilePage = "/Word/SaveFile"; //設置處理保存客戶端上傳文件流的Action方法
        poCtrl.WebOpen("D:\\test.docx", PageOfficeNetCore.OpenModeType.docNormalEdit, "tom");
        ViewBag.POCtrl = poCtrl.GetHtmlCode();
        return View();
    }

    //接收客戶端上傳的文件流,並保存到文件
    public async Task<ActionResult> SaveFile()
    {
        PageOfficeNetCore.FileSaver fs = new PageOfficeNetCore.FileSaver(Request, Response);
        await fs.LoadAsync();
        fs.SaveToFile("D:\\" + fs.FileName);
        return fs.Close();
    }
}
  1. 編寫“Word/Index”的view視圖文件Index.cshtml,代碼如下:
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head lang="en">
    <meta 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;">
        @Html.Raw(ViewBag.POCtrl)
    </div>
</body>
</html>
  1. 在需要實現“點擊超鏈接在線打開文件”的頁面(比如:Views/Shared/_Layout.cshtml)中添加對pageoffice.js的引用。

注意
項目中並不存在pageoffice.js文件,此文件來自於Startup.cs中配置的PageOffice服務器端程序,此程序中封裝了pageoffice.js。

  1. 然後在頁面(比如:Views/Shared/_Layout.cshtml)中添加一個超鏈接,點擊超鏈接調用POBrowser對象的openWindow方法,彈出新瀏覽器窗口訪問“Word/Index”在線打開文件,代碼如下:
<a href="javascript:POBrowser.openWindow('Word/Index' , 'width=1200px;height=800px;');">
    在線打開文檔
</a>
  1. 啓動項目,點擊“在線打開文檔”超鏈接,查看在線打開編輯保存Office文件的效果。

參考鏈接:PageOffice最簡集成代碼(.NetCore)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章