【面试题】1715- 面试官:PDF 预览和下载你是怎么实现的?

共 12235字,需浏览 25分钟

 ·

2023-06-17 09:13




934bf101c39c93067eca764672ac667f.webp







作者: 熊的猫



https://juejin.cn/post/7207078219215732794



前言

在开发过程中要求对 PDF 类型的发票提供 预览下载 功能, PDF 类型文件的来源又包括  H5 移动端 和  PC 端 ,而针对这两个不同端的处理会有些许不同,下文会有所提及。


针对 PDF 预览 的文章不在少数,但似乎都没有提及可能遇到的问题,或是提供对应的具体需求场景下如何选择,因此,本文的核心就是结合实际需求场景下,看看目前各种实现方案到底哪一个更适合,当然希望大家可以在评论区对文中的内容进行斧正,或是提供更优质的方案。



基本要求:



  • 支持 pdf 文件 内容的 完整预览


  • 多页 pdf 文件 支持 分页查看


  • PC 端移动端 都需支持 下载预览


产品要求:



  • PC 端 的预览要支持在 当前页 进行预览


  • pdf 文件 预览时的字体要 和 实际文件的 字体保证一致性

PDF 预览

先抛开上面的各种要求,咱们先总结下目前实现 PDF 预览的几种常用方式:



  • 借助各种类库,基于代码实现预览,如基于  pdfjs-dist[1] 的包


  • 直接基于各个浏览器内置的 PDF 预览插件,如