记录一次项目中使用pdf预览过程以及遇到问题以及如何解决

背景

项目中现有的pdf浏览解析不能正确解析展示一些pdf文件,要么内容一直在加载中展示不出来,要么展示的格式很凌乱

解决

方式一:(优点:比较无脑,缺点:不能解决遇到的一些特殊问题)

使用ai工具、google、百度等咨询,将现有情况描述送过去,等待解答,根据解答修改自己的代码

方式二:

1、寻找开源项目,找当前市面上现有解决方案,推荐github上这个项目

2、 找到后就开始研究怎么使用,首先看readme,根据readme基本可以解决99%的问题

  • 根据文档一步步操作,想研究源码可以clone下来仔细看看
  • 如果只是想项目中使用,则可以快速直接到项目中使用文档
  • 根据文档步骤一步一步操作即可

下面我说下我使用过程中遇到的问题以及怎么解决的

  • 我在使用后无法兼容老版本浏览器,导致老版本浏览器无法正常预览,
  • 官网也有说明,需要注意下图中,根据自己需求,看看自己pdf预览场景下面两个链接是否都可以正常展示,如果正常浏览器的链接无法正常展示,则需要使用兼容老版本方式
  • 使用方式,按下图命令执行
bash 复制代码
git clone https://github.com/mozilla/pdf.js.git
cd pdf.js
npm install
npx gulp server #可选,如果需要本地预览效果可以执行,然后访问看效果并进行调试
npx gulp generic # 正常版本执行
npx gulp generic-legacy #兼容老版本执行
  • 执行完后,项目会生成如下目录,核心有用文件pdf.mjs、pdf.worker.mjs、viewer.mjs、viewer.html
  • 将上面目录中文件拷贝到你的项目中,如下图
坑一:
  • 大家可以看见我复制过来里面会比生成的多了pdf.js、和将viewer.mjs改为了viewer.js

  • 不修改时,在安卓手机老版本浏览器访问viewer.html会不加载你的pdf文件

  • 原因说明:

    简而言之:
    • .mjs=强制 ES Module;
    • .js=默认 CommonJS(或由 package.json 决定)+浏览器端可通过