PageOffice实现文件在线安全预览——禁止编辑、下载、复制等
生活随笔
收集整理的這篇文章主要介紹了
PageOffice实现文件在线安全预览——禁止编辑、下载、复制等
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
實際應(yīng)用中,很多時候不僅需要在線編輯文件,還需要在線安全預(yù)覽文件,要求不能復(fù)制、下載、另存到本地等情況。pageoffice可以實現(xiàn)文件在線安全預(yù)覽,禁止:編輯、復(fù)制、粘貼、右鍵菜單、選擇、下載、另存、F12下載、PrintScreen拷屏等操作。
一、環(huán)境
前端:vue
后端:springboot 、pageoffice5.4.0.3
二、前端
Word.vue頁面
后端定義一個打開文件后執(zhí)行的事件。將這個事件定義的js函數(shù)在vue的mounted中掛載給window,執(zhí)行禁止另存、打印、頁面設(shè)置和打印預(yù)覽的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:{//控件中的一些常用方法都在這里調(diào)用,比如保存,打印等等AfterDocumentOpened() {document.getElementById("PageOfficeCtrl1").SetEnableFileCommand(4, false); //禁止另存document.getElementById("PageOfficeCtrl1").SetEnableFileCommand(5, false); //禁止打印document.getElementById("PageOfficeCtrl1").SetEnableFileCommand(6, false); //禁止頁面設(shè)置document.getElementById("PageOfficeCtrl1").SetEnableFileCommand(8, false); //禁止打印預(yù)覽}},mounted: function(){// 將vue中的方法賦值給windowwindow.AfterDocumentOpened = this.AfterDocumentOpened;} } </script>三、后端
禁止選中和禁止右鍵同時設(shè)置,實現(xiàn)禁止復(fù)制的功能。OpenModeType.docReadOnly模式打開文件限制文件編輯。并且隱藏菜單欄、office工具欄和pageoffice自定義工具欄。前端和后端配合實現(xiàn)文件在線安全預(yù)覽,防止文件內(nèi)容泄露
@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");//設(shè)置服務(wù)頁面poCtrl.setMenubar(false);//隱藏菜單欄poCtrl.setOfficeToolbars(false);//隱藏Office工具條poCtrl.setCustomToolbar(false);//隱藏自定義工具欄poCtrl.setJsFunction_AfterDocumentOpened("AfterDocumentOpened");//設(shè)置頁面的顯示標題poCtrl.setCaption("演示:文件在線安全瀏覽");//打開Word文檔poCtrl.setWriter(wordDoc);//此句必須poCtrl.webOpen(D:\\doc\\ReadOnly\\test.doc", OpenModeType.docReadOnly, "張三");return poCtrl.getHtmlCode("PageOfficeCtrl1");} }四、效果
總結(jié)
以上是生活随笔為你收集整理的PageOffice实现文件在线安全预览——禁止编辑、下载、复制等的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何解决“请在微信客户端打开链接”
- 下一篇: 移动web HTML5使用photosw