博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现在线预览远程服务器pdf文件心路历程
阅读量:7013 次
发布时间:2019-06-28

本文共 876 字,大约阅读时间需要 2 分钟。

前言

大家都知道在线预览本地pdf文件、只要将地址定位到本地pdf所在目录,即可打开pdf文件。但是如果地址直接指向服务器地址呢,近期做的项目是在线预览服务器上的pdf文件,出现了跨域问题,无法正常获取预览文件。

首先想到的解决方法:

1、让存放pdf文件的服务器支持跨域

但问题又来了,存放pdf文件的服务器有很多、以后还可能增加,每次都配置一下跨域、实在繁琐、而且也存在安全问题

2、当前项目的后台增加一个将远程文件转换成文件流的接口、直接给前端输出支持跨域的文件流、---------方案可行----------------

前端怎么展示 pdf文件呢?

  • iframe标签展示pdf:在pc浏览器上的是支持通过url直接预览pdf文件的、ios移动端浏览器也支持、但在android手机上、有的浏览器却 弹出下载框、下载到本地才能预览,这种iframe展示的方式失败了

本文说一下pdf插件的使用过程

最后上网搜资料,发现了pdfjs插件、又找了vue-pdf组件直接拿来用、功能是实现了,但是打包以后、dist包文件瞬间翻了一倍大

最后去pdfjs官网下载了库文件、在public static文件下引入、避免了webpack将其打包。

PDF.js可在官网下载 地址:

解压后的目录结构是:

其中build目录是PDF.js的核心文件。

web目录是PDF.js的配置与显示文件。

viewer.html是负责显示PDF的,viewer.js是负责配置的文件。viewer.js中:

其中var DEFAULT_URL 是默认解析的PDF文件,可以对他进行替换。

复制代码

test变量指的是:

encodeURIComponent('https://pch5.test.com/api/requestFile.pdf?requestUrl='+target.href)复制代码

target.href变量指的是远程服务器的pdf文件地址

转载于:https://juejin.im/post/5cce452551882541e27b0c04

你可能感兴趣的文章
一线实践 | 借助混沌工程工具 ChaosBlade 构建高可用的分布式系统
查看>>
智能合约就是程序
查看>>
用 Django 管理现有数据库
查看>>
【转】Hive 工作原理详解
查看>>
搭建JEESZ分布式架构--消息中间件简介
查看>>
面试中程序员常见的Redis"刁难"问题,值得一读!
查看>>
ES6常用总结
查看>>
为什么修复每个 bug 后都要问这 3 个问题?
查看>>
android:padding和android:margin的区别
查看>>
面试官问我,使用Dubbo有没有遇到一些坑?我笑了。
查看>>
人工智能起步-反向回馈神经网路算法(BP算法)
查看>>
邮件任务
查看>>
python项目实战:实现游戏敏感词汇过滤器
查看>>
创建maven【聚合工程】
查看>>
IT兄弟连 JavaWeb教程 使用AJAX发送GET请求并获取响应
查看>>
Oschina 周六乱弹——是一个傻子还是一群傻子?
查看>>
向自由职业者强烈推荐的12本免费电子书
查看>>
tornado延时函数
查看>>
android文件系统system-ramdisk-userdata三者之间的关系
查看>>
Collection has neither generic type or OneToMany.targetEntity()
查看>>