国产linux系统(银河麒麟,统信uos)使用 PageOffice 国产版在线打开 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);
}
参考链接:
另存文件为HTML格式
另存文件为PDF格式