如何将pdf文件转为base64流在网页中预览

 时间:2024-10-22 07:31:58

最近在工作中遇到了在线预览PDF的需求,因为服务端的特殊原因,我选择了将pdf文件转为了base64流传给前端,前端拿到base64流在线展示pdf。

如何将pdf文件转为base64流在网页中预览

工具/原料

java

base64

pdf.js

pdf转base64流

1、bas娣定撰钠e64是一种编码格式。该要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在鲂番黟谊6位的前面补两个0,形成8位一个字节的形式。如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。由于几乎任何文件流都可以转成base64流(就是字符串啦),十分方便在网络传输,所以很受欢迎。

如何将pdf文件转为base64流在网页中预览

2、以JAVA代码为例,创建读入文件流,转成byte数组,然后对自己数组进行base64编码。(推荐使用JAVA8自带的BASE64处理,特好用)这里注意一下,转化之后的base64文件大小通常要比原文件要大,会涉及到一些性能问题,这里不做更多阐述。

如何将pdf文件转为base64流在网页中预览

3、特别注意:出于网络传输,以及对前端友好的目的。需要对谀薜频扰得到的base64字符串要进行处理。1.使用字符串替换,去除'\r\n'(换行符),这个会影响到前端对bas髫潋啜缅e64的解析(IE下影响最大);2.使用字符串替换,在base64中有码值‘+',需要替换成‘%2B’(在JAVA8中会自动处理为'_')

如何将pdf文件转为base64流在网页中预览

base64流在线预览

1、前端拿到了服务端的base64流字符串,要怎么处理呢,如果直接使用的话,那怕是要反水水,因为,ta真的只是字符串~,这时候我们需要对字符串处理一下,给ta加上数据类型:"data:application/pdf;base64,",指明ta是什么类型的数据。

如何将pdf文件转为base64流在网页中预览

2、给数据添加类型后,接下来使用就简单了,直接将拼接的字符串复制给html标签的src属性即可。(这里提供embed标签和iframe标签,我在关联经验里有写到)

如何将pdf文件转为base64流在网页中预览

如何将pdf文件转为base64流在网页中预览

3、但是如果直接拿标签加载的话,从体验上来说,差强人意。既然前端已经拿到了文件的base64流,其实是可以搞点事情的,我们可以结合插件'pdf.js',得到一个很好的预览效果。至于具体如何实现,我们在下一篇经验中开搞~

如何将pdf文件转为base64流在网页中预览

如何将pdf文件转为base64流在网页中预览

Bat文件实现自动切换IP WinServer 2008操作系统设置域用户登录域的时段 易语言制作简易锁屏程序 易语言判断(),如果(),选择()命令的关系 如何设置易语言调用DLL命令后检查堆栈错误
热门搜索
网页图片打不开 图片114 樱初音图片 电影深喉 皮皮电影