使用pageoffice进行在线预览

43 篇文章 0 订阅

1)首先pageoffice不能跨域访问

2)使用的是PageOffice_4.4.0.4_Java.zip

3)使用pageoffice不能随页面直接打开文件,只能通过前一个html打开

4)由于使用的是2个服务,因此pageoffice单独一个服务,只能通过磁盘路径访问

5)对路径进行了base64加密

6)

var croFilePath = "C:\\\\aaa"+filePath;
    croFilePath = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(croFilePath));
    croFilePath = croFilePath.replace(/\+/g, "%2B");

由于使用了utf8的base64加密,因此java端也要进行utf-8的解密

var croFilePath = "D:\\\\pi-web-bncqk-1.0.0"+filePath;
    croFilePath = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(croFilePath));


public static String encode(final byte[] bytes) {  
        return new String(org.apache.commons.codec.binary.Base64.encodeBase64(bytes));  

    }

public static byte[] decode(String payload) {  
        return org.apache.commons.codec.binary.Base64.decodeBase64(payload);
    }
    
    public static String encode(String source){
        return encode(source.getBytes(Charset.forName("UTF-8")));
    }
    
    public static String decodeString(String payload) {
        return new String( decode(payload),Charset.forName("UTF-8"));
    }
    
    public static String decodeUrl(String encodeurl){
        try {
            return java.net.URLDecoder.decode(encodeurl,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return "";
    }
    
    public static String encodeUrl(String sourceUrl){
        return java.net.URLEncoder.encode(sourceUrl);

    }

7)由于base64加密有会有+号,+号在html中展示为空格,因此需要%2B转下

但是服务端依然会有空格,因此需要java把所有空格转换成+,因此上传的文件不能有空格


PageOfficeCtrl poCtrl=new PageOfficeCtrl(request);
WzBase64 wzBase64 = new WzBase64();
//设置服务器页面
poCtrl.setServerPage(request.getContextPath()+"/poserver.zz");
//添加自定义按钮
poCtrl.addCustomToolButton("全屏切换", "SwitchFullScreen()", 4);//全屏切换
//设置保存页面
poCtrl.setSaveFilePage("SaveFile.jsp");
//打开Word文档
String filePath = request.getParameter("filePath");
filePath = filePath.replaceAll(" ", "+");
poCtrl.webOpen( wzBase64.decodeString(filePath) ,OpenModeType.docReadOnly,"张佚名");



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值