技术方案
-
利用浏览器自带预览pdf 的功能, a链接新开新开页面预览
-
利用iframe,embed或者object标签内嵌html预览
3. 利用第三方库PDFObject(和直接embed标签效果一致)
- pdfjs
pafjs本身就是一个项目,且未提供npm包,已知使用方法将pdfjs上传到服务器,作为专门一个用来实现pdf文件于预览的服务
官网:https://github.com/mozilla/pdf.js#online-demo
最后采用embed标签实现预览pdf的需求
技术卡点
- 根据需求,后端需要提供两个pdf文件的接口,一个接口浏览器默认行为是预览,另一个接口浏览器的默认行为是直接下载,但是联调中发现后端提供得的接口浏览器默认行为都是下载。
经过百度和node测试 ,最后发现响应头 "Content-type"为 "application/pdf"时且不存在响应头"Content-Disposition"时,浏览器的默认行为才是预览,其他情况均为下载