国产linux系统(银河麒麟,统信uos)使用 PageOffice 国产版在线打开 word文件并另存HTML或者PDF格式
PageOffice 国产版 :支持信创系统,支持银河麒麟 V10 和统信 UOS,支持 X86(intel、兆芯、海光等)、ARM(飞腾、鲲鹏、麒麟等)芯片架构。
查看本示例演示效果
本示例关键代码的编写位置
Vue+Springboot
注意
本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。
在实际项目开发中,有时需要满足一些没有安装 Office 软件的客户端电脑或者手机端浏览文档的需求。为了实现这个功能,我们可以将 Office 文件另存为 HTML 格式或者 PDF 格式。
(1) 另存 HTML
在前端代码中,我们可以添加一个自定义按钮,并调用 PageOffice 控件的 WebSaveAsHTML 方法来实现。当用户点击“另存为 HTML”按钮后,会在 doc/test.docx 所在的文件夹中生成一个 test.html 文件以及一个与 test.html 相关联的文件夹。
需要注意的是,这种方法虽然能够实现 Office 文件的浏览,但是它并不能完全替代 Office 软件的功能,因为在转换为 HTML 格式后,文件的一些高级特性可能会丢失或变得不够完美。因此,在选择此方法时,需要根据实际情况权衡利弊。
(2) 另存 PDF
在前端代码添加一个自定义按钮,调用 PageOffice 控件的 WebSaveAsPDF 方法可以把 Office 文件另存为 PDF 文件。
运行此示例后,点击“另存为 PDF”按钮后,会在 doc/test.docx 所在的 doc 文件夹中生成一个 test.pdf 的文件。
在实际项目开发中,此功能可在以下三种情况下使用:
- 满足一部分没有安装 Office 软件的客户端电脑或者手机端浏览文档
- 实现文档的只读发布
- 实现加盖带有数字签名的电子印章
后端代码
- 在后端编写代码调用 webOpen 方法打开文件之前给 SaveFilePage 属性赋值(设置好保存时由哪个地址接口负责接收处理控件上传的文件流);
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
poCtrl.setSaveFilePage("saveFile"); // 设置保存文件的接口地址
//webOpen 的第一个参数支持能够输出下载文件的 Url 相对地址或者文件在服务器上的磁盘路径两种方式
// 查看详细,请在本站搜索“PageOffice 属性或方法中涉及到的 URL 路径或磁盘路径的说明”
poCtrl.webOpen("doc/test.docx", OpenModeType.docNormalEdit, "张佚名"); // 打开文件
注意
对 PageOfficeCtrl 对象的所有属性赋值或函数调用都必须在 WebOpen 方法调用之前执行,否则会不生效。
- 在 SaveFilePage 属性指向的地址接口中,创建 FileSaver 对象处理文件的保存工作。
FileSaver fs = new FileSaver(request, response);
fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + fs.getFileName());
fs.close
前端代码
function saveAsPDF() {
pageofficectrl.WebSaveAsPDF(); // 另存当前文件为 PDF 格式
pageofficectrl.WebSaveAsHTML(); // 另存当前文件为 Html 格式
}
OnPageOfficeCtrlInit() {
// PageOffice 的初始化事件回调函数
pageofficectrl.AddCustomToolButton("另存为PDF", "saveAsPDF()", 19);
pageofficectrl.AddCustomToolButton("另存为HTML", "saveAsHTML()", 8);
}