请问前端怎样在线预览pdf文件?并且高亮其中的某些文字?

如题:
请问前端怎样在线预览pdf文件?并且高亮其中的某些文字?
之前用过npm vue-pdf等。只是展示而已。目前的项目需求是需要解析里面的文字高亮出来。

阅读 6.5k
3 个回答

针对无法提取文字的

  1. pdf.js 生成图片,
  2. 然后 OCR 识别。
  3. 根据 OCR 结果加蒙层

如果可以提取文字,比如说 pdf-view 出来是能选择的。那么你可以针对做一些二开。

魔改 pdfjs

大部分pdf都是用pdf.js库,pdf.js是有提供一个完整的阅读器,里面带有搜索高亮功能。之前查了一下相关的实现方案。

  • 具体逻辑记不清了,印象中如果单纯的引入pdf.js,是没提供直接能高亮的接口的。需要pdf.js开启渲染文本层,搜索文本得自己实现,在对应的dom处插入高亮元素。可以参考阅读器里面的逻辑。
  • 相对简单的方案是,修改pdf.js提供的阅读器代码,调用搜索逻辑查找自己需要高亮的字符。网上有文章,根据关键词搜一下可以查到。

这些前提pdf中是文本格式的,如果pdf嵌入的是图片,就没办法了。只能走OCR,PDF图片排版可以简单也可以复杂,要想识别效果好就很难了。
如果要用其他什么带搜索的库,之前github找了一番,也是没找到,基本都只做完浏览逻辑。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题