实际应用中,很多时候不仅需要在线编辑文件,还需要在线安全预览文件,要求不能复制、下载、另存到本地等情况。pageoffice可以实现文件在线安全预览,禁止:编辑、复制、粘贴、右键菜单、选择、下载、另存、F12下载、PrintScreen拷屏等操作。

一、环境

前端:vue

后端:springboot 、pageoffice5.4.0.3

二、前端

Word.vue页面

后端定义一个打开文件后执行的事件。将这个事件定义的js函数在vue的mounted中挂载给window,执行禁止另存、打印、页面设置和打印预览的js

<template>
<div class="Word"><div style="width:auto; height:700px;" v-html="poHtmlCode" ></div>
</div>
</template><script>const axios=require('axios');export default{name: 'Word',data(){return {message: ' ',poHtmlCode: '',}},created: function(){//由于vue中的axios拦截器给请求加token都得是ajax请求,所以这里必须是axios方式去请求后台打开文件的controlleraxios.post("/api/ReadOnly/Word").then((response) => {this.poHtmlCode = response.data;}).catch(function (err) {console.log(err)})},methods:{//控件中的一些常用方法都在这里调用,比如保存,打印等等AfterDocumentOpened() {document.getElementById("PageOfficeCtrl1").SetEnableFileCommand(4, false); //禁止另存document.getElementById("PageOfficeCtrl1").SetEnableFileCommand(5, false); //禁止打印document.getElementById("PageOfficeCtrl1").SetEnableFileCommand(6, false); //禁止页面设置document.getElementById("PageOfficeCtrl1").SetEnableFileCommand(8, false); //禁止打印预览}},mounted: function(){// 将vue中的方法赋值给windowwindow.AfterDocumentOpened = this.AfterDocumentOpened;}
}
</script>

三、后端

禁止选中和禁止右键同时设置,实现禁止复制的功能。OpenModeType.docReadOnly模式打开文件限制文件编辑。并且隐藏菜单栏、office工具栏和pageoffice自定义工具栏。前端和后端配合实现文件在线安全预览,防止文件内容泄露

@RestController
@RequestMapping(value = "/ReadOnly")
public class ReadOnlyController {@RequestMapping(value = "/Word")public String showWord(HttpServletRequest request) {WordDocument wordDoc=new WordDocument();wordDoc.setDisableWindowSelection(true);//禁止选中wordDoc.setDisableWindowRightClick(true);//禁止右键PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);poCtrl.setServerPage("/api/poserver.zz");//设置服务页面poCtrl.setMenubar(false);//隐藏菜单栏poCtrl.setOfficeToolbars(false);//隐藏Office工具条poCtrl.setCustomToolbar(false);//隐藏自定义工具栏poCtrl.setJsFunction_AfterDocumentOpened("AfterDocumentOpened");//设置页面的显示标题poCtrl.setCaption("演示:文件在线安全浏览");//打开Word文档poCtrl.setWriter(wordDoc);//此句必须poCtrl.webOpen(D:\\doc\\ReadOnly\\test.doc", OpenModeType.docReadOnly, "张三");return poCtrl.getHtmlCode("PageOfficeCtrl1");}
}

四、效果

PageOffice实现文件在线安全预览——禁止编辑、下载、复制等相关推荐

  1. vue 后台返回的文件流进行预览_vue实现下载文件流完整前后端代码

    这篇文章主要为大家详细介绍了vue实现下载文件流完整前后端代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 使用Vue时,我们前端如何处理后端返回的文件流 首先后端返 ...

  2. Nginx搭建文件服务器以及文件在线预览和强制下载

    文件服务 直接查看server块配置 server {listen 1234;server_name 127.0.0.1;charset utf-8; # 避免中文乱码 location / {roo ...

  3. php怎么在线预览word文件?php预览.doc、.docx、.wps文件

    php预览Word PHP要实现在线Word预览只需要3步 第一步: 准备一个文件地址,如下: http://usdoc.cn/vw/文件模板.docx 第二步 预览前置地址: http://vw.u ...

  4. chrome浏览器 在线打开预览pdf文件,而不是下载文件。

    Content-Type: application/pdf Content-Disposition: inline; filename="pdf-file1.pdf" 关键有2个点 ...

  5. WEB前端实现在线预览、编辑Office文档

    这篇文章介绍如何在web前端引入JS插件实现在线预览.编辑Office文档. 使用插件:Spire.Cloud在线Office文档编辑器(官网:冰蓝科技在线编辑) 重点:该方案仅需浏览器支持HTML5 ...

  6. 永中文档在线转换预览双活实现方案

    永中文档在线转换预览双活实现方案 永中文档在线转换预览服务 是永中软件股份有限公司基于十多年核心技术积累.面向移动互联领域推出的 一款文档处理软件.永中采用自主可控核心技术,具备快速技术和服务响应能力 ...

  7. vue实战--vue+elementUI实现多文件上传+预览(word/PDF/图片/docx/doc/xlxs/txt)

    需求 最近在做vue2.0+element UI的项目中遇到了一个需求:需求是多个文件上传的同时实现文件的在线预览功能.需求图如下: 看到这个需求的时候,小栗脑袋一炸.并不知道该如何下手,之前的实践项 ...

  8. 为AList V3添加在线epub预览支持教程

    文章目录 为AList V3添加在线epub预览支持教程 说明 动图演示 工具准备 部署 修改Nginx设置 修改spreads.html文件 修改AList预览设置 为AList V3添加在线epu ...

  9. javascript --- [FormData的使用] 文件上传进度条展示 文件上传图片即使预览

    1. 准备工作 因为要发送Ajax请求,而Ajax技术的运行需要网站环境,因此其中一个解决方案是,将页面作为网站的静态资源暴露出来,然后通过浏览器进行访问. 1.1 静态资源 使用express将pu ...

最新文章

  1. Django基础篇之MVC与MTV模型
  2. 数据分析入门极简书单
  3. 专业的PDF组件Spire.PDF for .NET V3.9.124发布|支持图标布局
  4. CRDT——解决最终一致问题的利器
  5. 如何加入微服务 Apache ServiceComb 社区
  6. 硬盘测试软件看接口,检测硬盘的工具使用方法
  7. 高级语言 和 低级语言 的区别
  8. BUG记录:org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is no
  9. 金山打字游戏c语言代码,一天练习一个小C/C++程序(一) 控制台版“金山打字”游戏...
  10. Rosalind第11题——ros_bio11_FIBD
  11. python将列表中的偶数变成平方、奇数不变_编写程序,将列表s=[9,7,8,3,2,1,5,6]中的偶数变成它的平方,奇数保持不变,运行效果如书上图所示。_学小易找答案...
  12. 5、DML语句(数据操纵语言-增删改查)
  13. java编译找不到文件_解决cmd运行java程序“找不到文件”提示的方案
  14. Ideas for Snap to grid
  15. hive安装及整合hbase
  16. iframe基础入门使用
  17. 汽车理论matlab编程,(百度)汽车理论matlab编程.ppt
  18. Java 里的异常(Exception)详解
  19. 【我的新书】《良质!PHP企业级系统开发》- 图灵社区
  20. Microsoft.Office.Core 引用以及 Microsoft.Office.Core.MsoTriState 的问题

热门文章

  1. 我成了 GitHub Star
  2. useState使用TS声明类型
  3. 中华术数系列之奇门遁甲-精简版
  4. 6.泡妞与设计模式(七)策略模式
  5. 打包后图片不显示问题
  6. 数列的定义如下: 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和
  7. 关于Iphone3和Iphone4按键Home失效
  8. Cognex.VisionPro.QuickBuild命名空间下的一些委托方法
  9. 2021年美容师(中级)考试及美容师(中级)多少分及格
  10. python Django Session,CSRF,Model操作,Form验证,中间件,缓存,信号