最简单的打开保存文件

各种框架集成pageoffice步骤参考链接:

vue+springboot:https://www.pageoffice.cn/pages/d83620/

springMVC:https://www.pageoffice.cn/pages/2994dc/

.netCore:https://www.pageoffice.cn/pages/6987cc/

注意

本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。

在OA办公、文档流转等各个Web系统中,实现最简单的打开编辑保存文件功能,调用PageOffice只需要几行代码就可以完成。

后端代码

  1. 在后端编写代码调用webOpen方法打开文件之前给SaveFilePage属性赋值(设置好保存时由哪个地址接口负责接收处理控件上传的文件流);
  • Java
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
poCtrl.setSaveFilePage("saveFile"); // 设置保存文件的接口地址
//webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
//查看详细,请在本站搜索“PageOffice属性或方法中涉及到的URL路径或磁盘路径的说明”
poCtrl.webOpen("doc/test.docx", OpenModeType.docNormalEdit, "张佚名"); // 打开文件
  • .NetCore
PageOfficeNetCore.PageOfficeCtrl POCtrl = new PageOfficeNetCore.PageOfficeCtrl(Request);
POCtrl.SaveFilePage = "SaveDoc";
//webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
POCtrl.WebOpen("doc/test.docx", PageOfficeNetCore.OpenModeType.docNormalEdit, "tom");

注意

对PageOfficeCtrl对象的所有属性赋值或函数调用都必须在WebOpen方法调用之前执行,否则会不生效。

  1. 在SaveFilePage属性指向的地址接口中,创建FileSaver对象处理文件的保存工作。
  • Java
FileSaver fs = new FileSaver(request, response);
fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + fs.getFileName());
fs.close();
  • .NetCore
PageOfficeNetCore.FileSaver fs = new PageOfficeNetCore.FileSaver(Request, Response);
await fs.LoadAsync();
string webRootPath = _webHostEnvironment.WebRootPath;
fs.SaveToFile(webRootPath + "/SimpleWord/doc/" + fs.FileName);
return   fs.Close();

前端代码

  1. 在OnPageOfficeCtrlInit事件中添加自定义按钮(根据实际需求自行添加,不限于以下几个按钮)。
  • JavaScript
OnPageOfficeCtrlInit() {
  pageofficectrl.AddCustomToolButton("保存", "Save", 1);
  pageofficectrl.AddCustomToolButton("另存为", "SaveAs", 12);
  pageofficectrl.AddCustomToolButton("打印设置", "PrintSet", 0);
  pageofficectrl.AddCustomToolButton("打印", "PrintFile", 6);
  pageofficectrl.AddCustomToolButton("全屏/还原", "IsFullScreen", 4);
  pageofficectrl.AddCustomToolButton("-", "", 0);
  pageofficectrl.AddCustomToolButton("关闭", "Close", 21);
},
  1. 实现自定义按钮所调用的js函数;
  • JavaScript
function Save() {
  pageofficectrl.WebSave();
}
function SaveAs() {
  pageofficectrl.ShowDialog(3);
}
function PrintSet() {
  pageofficectrl.ShowDialog(5);
}
function PrintFile() {
  pageofficectrl.ShowDialog(4);
}
function Close() {
  window.external.close();
}
function IsFullScreen() {
  pageofficectrl.FullScreen = !pageofficectrl.FullScreen;
}