前端ofd在线预览

前言

        项目是非vue项目,整体比较旧,网上寻找的很多资料都是vue的,本人搞半天,没搞好。后面我通过后端去实现,将ofd转成pdf,前端直接pdf预览,但是发现转成pdf的文件上面的签章不见了。ofd转pdf的后端网上有很多,试了好几个之后,我放弃了!!最后找到这个前端的在线预览,签章也保留了。

前端ofd在线预览  资源包地址

应用

        ofd资源包的目录层级如下:

        

        ofd资源包html说明:     

ofd直接测试效果:

前端调用方式:

//调用接收之后返回ofd文件的base64
//将base64转成可预览的地址
var arr = base64.split(','),
bstr = atob(arr[0]), n = bstr.length, u8arr = new Uint8Array(n);
while (n--) {
    u8arr[n] = bstr.charCodeAt(n);
}
var myBlob = new Blob([u8arr], null);
var myUrl = URL.createObjectURL(myBlob);
//使用ofd资源包的showofd.html打开地址
var ofdhtml = "../../showofd/showofd.html?file="+myUrl;
window.open(html);

layui框架实现代码

fifth.showOfd = function(imageData){
	if (imageData == "") {
		common.fail("查看图片出错,请联系相关开发人员!");
		return ;
	}
    //后端返回ofd的base64
	var data = imageData[0];
	layer.open({
		type: 1 //此处以iframe举例
		,title: "ofd预览"
		,area: ['80%', '90%']
		,shade: 0
		,maxmin: true
		,moveType: 0
		,zIndex: layer.zIndex
		,content:'<div id="ofdcontainer" style="width: 99%;height: 99%"><div id="pop" style="width: 100%;height: 100%"></div></div>'
		,success:function(){
			var arr = data.split(','),
				bstr = atob(arr[0]), n = bstr.length, u8arr = new Uint8Array(n);
			while (n--) {
				u8arr[n] = bstr.charCodeAt(n);
			}
			var myBlob = new Blob([u8arr], null);
			var myUrl = URL.createObjectURL(myBlob);
			var ofdhtml = "../../easyopen/showofd/showofd.html?file="+myUrl;
			var html = "<iframe src="+ofdhtml+" width='100%' height='100%' scrolling='no'></iframe>"
			$('#pop').empty();
			$("#pop").append(html);
		}
	});
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值