1. 开始使用vue-pdf这个插件, 发现它只适用于页码小的文件, 文件大了容易卡顿奔溃 (建议小文件使用,比较方便)
2. 然后做优化, 在包裹pdf显示外层div添加滚动事件, 初始渲染的页数不要显示总页数,可以自己定义设置想要的页数如初始显示10页,显示少一些卡顿有效缓解, 监听滚动做分页功能。(这种方式在50页以内还行,再大了有些配置低点的机型扛不住,也会卡顿)
3. 因为文件上白页,没办法选择切换插件,选了pdfjs-dist, 这个是没有封装的,自己进行处理, 解决了上面的问题
4. 这里遇到的几个问题,
4.1 vue-pdf和pdfjs-dist引入会出现盖章不显示问题,解决方案:需注释依赖中的部分代码
if (data.fieldType === "Sig") {
// data.fieldValue = null;
// this.setFlags(_util.AnnotationFlag.HIDDEN);
}
4.2 vue-fdf 出现二次回显,填充内容不显示问题
//node_modules/vue-pdf/CMapReaderFactory.js
// .then 后面添加 加载完语言文件后清除缓存
delete require.cache[require.resolve('./buffer-loader!pdfjs-dist/cmaps/'+query.name+'.bcmap')]
4.3 部分文字不显示的问题
引入CMapReaderFactory
4.4 移动端放大缩小问题
这里引入了腾讯手势库 AlloyFinger
标签:vue,dist,记录,页数,pdf,pdfjs,卡顿
From: https://www.cnblogs.com/xm0328/p/16825682.html