前端用 pdfjs 如何实现文字高亮

2023-11-13 22:01:27 +08:00
 nexo

请问有没有有经验的大佬指点下 避免走弯路 需求: 1.在网页浏览 pdf 2.滑动选择文字层高亮(需要支持两个高亮重叠) 3.获取文本和坐标 保存坐标后端, 第二次渲染重新高亮文本,

目前探索成果: 目前发现开源做的比较好的是 hypothes 但是集合了它本身的侧边栏

1399 次点击
所在节点    JavaScript
6 条回复
saveai
2023-11-24 18:24:13 +08:00
你搞定了吗
nexo
2023-11-25 12:37:43 +08:00
@saveai 搞定了 自己实现了一套
nexo
2023-11-25 12:38:28 +08:00
@saveai 你是也有困惑还是有推荐的解决方案呢
saveai
2023-11-25 15:21:37 +08:00
@nexo #3 有的,adobe 官方免费无限制的,高亮、批注、下划线都有。
地址: https://acrobatservices.adobe.com/view-sdk-demo/index.html#/view/FULL_WINDOW/Bodea%20Brochure.pdf

另外由于我用的 electron ,有 csp 限制不知道怎么解决,所以暂时不能用这个,只能用 pdfjs ,可以分享下你的解决方案吗
nexo
2023-11-26 10:49:21 +08:00
@saveai 可以看下 github 上的开源项目 目前到代码质量比较高的是 hypothesis 的源代码高亮部分在 client 仓库里 但是复杂度稍微较高因为用了三种 selector 来定位 pdfjs 中的文本 因为我的项目只需要高亮 用不到 annotation 所以我只参考了一部分 不确定有没有更好方案 因为这个开源代码一部分是 3 年前的代码 期间可能会有很多浏览器更新自带 api 可以简化这些流程
nexo
352 天前
@saveai 老哥你有新结论了吗 最近发现 pdfjs 文字选择精度有点差 准备换方案了...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/991621

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX