kkFileView基于pdf.js实现多词高亮

参考文档:

1.文件文档在线预览转换解决方案和应用

2.kkfileview预览pdf格式文件,实现多关键词高亮和定位_kkfileview+高亮方案-CSDN博客

3.PDF.js实现搜索多个不同的关键词高亮显示效果

最终效果:

需求描述:

预览文件时,在文档中高亮显示搜索的文字,并实现分词、多词搜索

如:需要搜索"项目",文件中需要高亮所有的 "项" 和 "目"

解决代码:

  1. kkFileView属于开源,我们是基于kkFileView的代码修改实现。

需要的可以kkFileView---gitee地址中下载。

  1. 根据参考文档1和2,基本可以实现高亮,但不能分开高亮,"项" 和 "目" 。

  2. 根据参考文档3,实现分开高亮。

在文件 resources/static/pdfjs/web/viewer.js 中添加代码:

  • _initializeViewerComponents 方法中:
javascript 复制代码
    // 添加代码
    // 自定义搜索关键词----------------------------------------
    this.searchKeywords = keyword => {
      if (typeof PDFViewerApplication !== 'undefined') {
        PDFViewerApplication.eventBus.dispatch('find', {
          query: keyword,
          caseSensitive: false,
          highlightAll: true,
          findPrevious: true
        });
      }
    }
  • setInitialView 方法中:
javascript 复制代码
    // 添加代码    
    // 高亮显示N个关键词----------------------------------------
    // 获取关键词数组
    var keywords = new URL(decodeURIComponent(location)).searchParams.get('keyword');
    if (keywords && keywords !== 'undefined') {
      this.searchKeywords(keywords.split('|'));
      setTimeout(() => {
        // 让高亮效果统一,避免最后一个聚焦的样式不同
        document.querySelector(`.highlight.selected`).classList.remove('selected');
      }, 1000);
    }
  1. new URL(decodeURIComponent(location)).searchParams.get('keyword') 中的 'keyword'对应效果图中地址后拼接的 **&keyword=**搜索的文字。
  2. this.searchKeywords(keywords.split('|')):根据 | 切割字符串为数组。后面优化了一下为this.searchKeywords(keywords.split('')),自动每个字都为搜索关键字。即最终效果图所示。

总结:

这篇主要记录一下需求,所有成效均为借鉴参考文档。

后续会融入到项目中.....

相关推荐
Metaphor6929 分钟前
使用 Python 提取 PDF 文件中的文本、表格、图片
开发语言·python·pdf
hljqfl10 分钟前
银河麒麟安装PDF虚拟打印机
linux·运维·pdf
优化控制仿真模型16 分钟前
【最新考研408】考研计算机408统考历年真题及答案解析PDF电子版(2009-2026年)
经验分享·pdf
2501_9270125715 小时前
修改pdf属性时间和日期怎么改?3种方法,零专业工具上手
经验分享·其他·pdf
诸葛大钢铁17 小时前
如何限制PDF的打印、复制编辑等操作?限制PDF打印编辑复制的三种方法
pdf·word·pdf打印限制·权限限制
南风微微吹17 小时前
2000-2026年国考《行测+申论》历年真题及答案解析PDF电子版(考公)
pdf·考公
开开心心_Every18 小时前
扫描软件,部分文档文字表格识别功能可免费
运维·服务器·pdf·电脑·excel·3dsmax·houdini
无心水1 天前
15、商业API巅峰对决|Adobe vs Google vs Azure 高精度OCR全方位评测
架构·pdf·pdf解析·pdf抽取·paddlercor
weixin_416660071 天前
原创分享:Markdown 转 Word 工具,一键导出Word/PDF文档
pdf·word·latex·deepseek
开开心心就好1 天前
这款PPT计时工具支持远程控制功能
前端·科技·游戏·edge·pdf·全文检索·powerpoint