本文描述了PageOffice產品在.NetCore項目中如何集成調用。
- 新建.NetCore項目:PageOffice6-Net-Core-Simple
- 在此項目的“依賴項-包-管理NuGet程序包”中搜索到“Zhuozhengsoft.PageOffice"程序後安裝最新版本。
- 下載PageOffice客戶端安裝程序。
- windows客戶端安裝程序:posetup_6.x.x.x.exe;
- 國產操作系統客戶端安裝程序:對應芯片的PageOffice客戶端deb安裝包;
PageOffice客戶端安裝程序下載地址:https://gitee.com/pageoffice/pageoffice6-client/releases
-
拷貝PageOffice客戶端安裝程序到項目的bin目錄下(項目的生成目錄,比如:bin\Debug\net5.0)
-
修改Startup.cs文件,添加PageOffice服務器端程序的相關配置,代碼如下:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
app.UseMiddleware<PageOfficeNetCore.POServer.ServerHandlerMiddleware>();
}
如果是.Net6項目,就在Program.cs文件中添加代碼:app.UseMiddleware<PageOfficeNetCore.POServer.ServerHandlerMiddleware>();
- 在D盤根目錄下準備一個有內容的test.docx文件。
- 新建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();
}
}
- 編寫“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>
- 在需要實現“點擊超鏈接在線打開文件”的頁面(比如:Views/Shared/_Layout.cshtml)中添加對pageoffice.js的引用。
注意
項目中並不存在pageoffice.js文件,此文件來自於Startup.cs中配置的PageOffice服務器端程序,此程序中封裝了pageoffice.js。
- 然後在頁面(比如:Views/Shared/_Layout.cshtml)中添加一個超鏈接,點擊超鏈接調用POBrowser對象的openWindow方法,彈出新瀏覽器窗口訪問“Word/Index”在線打開文件,代碼如下:
<a href="javascript:POBrowser.openWindow('Word/Index' , 'width=1200px;height=800px;');">
在線打開文檔
</a>
- 啓動項目,點擊“在線打開文檔”超鏈接,查看在線打開編輯保存Office文件的效果。