PDF在线预览插件汇总与方案总结

先介绍下工作背景:

java一枚,最近在做政府单位的信息管理软件,后台需要对数据进行汇总,并生成PDF格式的报告文件,生成PDF文件用的是iReport生成的,具体可以去百度。生成完之后客户得查看吧,下载之后再查看PDF文件的方式体验不好,需要利用插件在浏览器上进行在线预览。于是开始了研究之路.......(噢对了,后面还做了电子签章,就是对PDF进行电子签章)


一、PDF转SWF(FlexPaper预览)

这种做法类似于百度和豆丁的做法,就是先将PDF文件转换成swf文件,然后利用FlexPaper插件进行预览,优点是浏览器性好。请看下面的百度介绍:


具体做法可以百度,一大把。我下面就说一下我遇到的问题:

1、首先我们的产品是给政府单位用的,某些单位的网络环境比较安全,是完全与互联网隔离的,但是FlexPaper这个插件在一些新机器上首次使用时,需要连接adobe官网缓存一些必要文件到客户端本地,但是由于无法连接互联网,所以FlexPaper插件不能初始化,导致这个方案被毙了(但是后来查资料说 flexpaper在打包时可以选择将缓存文件一起打包进去,这样就能避免这个问题,但是研究了几天都没研究出来)

2、swf文件清晰度不够,客户一直诟病这个

3、我们的PDF是需要进行电子签章的,但是pdf2swf 时,不能转换电子签章的图片,也就是电子签章丢失。


二、pdf.js 


这是一款利用H5渲染PDF的插件

优点:无需安装任何插件;清晰度高;

缺点:需要浏览器支持H5;无法展示 电子签章;

因为我们最低要支持IE8,所以这方案也被毙掉了。


三、adobe PDF reader activeX

这是adobe提供的一个基于IE浏览器的PDF浏览插件,并且提供了一些接口。具体调用方式如下:

var activeX="<object classid='clsid:CA8A9780-280D-11CF-A24D-444553540000' name='PdfViewer' id='PdfViewer' width='100%' height='720px'>"+
            " <param name='toolbar' value='false'>"+
      " <param name='_Version' value='327680'>"+
      " <param name='_ExtentX' value='19315'>"+
" <param name='_ExtentY' value='16034'>"+
" <param name='_StockProps' value='0'>"+
" <param name='SRC' value='http://localhost:8080/test/123.pdf'>"+
      " <object>";
$("#pdfviewobj").html(activeX);

 Adobe Reader ActiveX的常用方法(Methods)

□ gotOFirstPage:到第一页。

□ GotoLastPage:到最后一页。

□ GotoNextPape:到。

□ GotopriciousPape:到。

□ Print:打印文件。

□ PrintPages:打印指定页。带2个参数,第一个参数指定起始页,第一个参数指定结

束页。

□ Printwithdialog:打印文件前先显示打印机属性对话框。

□ SetCurrentpage:到指定页。带一个参数,该参数指定要跳转到的页数。

□ setshowscrollbars:设置是否显示Acrobat Reader的滚动条。带一个参数,该参数设为0时不显示滚动条,设为1时显示滚动条。

□ SetshowTOolbar:设置是否显示 Acrobat Reader的工具栏。带一个参数,该参数设为0时不显示,设为1时显示。

□ setView:设置显示效果。带一个参数,该参数是一个字符串,设为fit时将达到最佳显示效果。

□ SetZoom:设置文件的显示比例。带一个参数,该值为一个数值,比如设为90时,即为原窗口大小的90%。


优点:1、清晰度高;2、支持 电子签章的展示(支持展示签名信息);

缺点:1、需要安装adobe PDF reader桌面端程序,客户现场环境恶劣,偶尔出现安装不成功;2、只支持IE浏览器;3、连续打印时,浏览器容易卡死



四、PDFBox生成图片

优点:

1、无需安装插件;
2、浏览器兼容性好;
3、清晰度高;
4、支持 电子签章的展示(不支持展示签名信息);

缺点:

生成图片速度较慢,4页的PDF需要6000毫秒;

如果PDF中的字体,在服务器上未安装,则会导致生成的图片乱码。
















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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值