在 pdf.js 中搜索重音字符

Search with accented characters in pdf.js

我正在使用 ng2-pdf-viewer 库来显示一些 pdf。我被要求为这些 pdf 包含一个搜索栏,我通过使用 PdfFindController 中的这个命令来完成 pdf.js

this.pdfFindController.executeCommand('find', {
            caseSensitive: false,
            findPrevious: false,
            highlightAll: true,
            phraseSearch: phraseSearch,
            query: stringToSearch
        });

但是我的大部分 pdf 都是法语的,所以它们使用奇怪的字符,例如 è û 等。所以我需要知道 findcontroller 参数中是否有选项设置此查找功能以查找所有匹配项,无论它们是否有重音或重音。如果不是,您建议我采取什么解决方法。

我也在 pdfjs github 页面 https://github.com/mozilla/pdf.js/issues/8101 上发现了这个问题,但他们没有给出直接的答案。

谢谢大家的帮助!

所以你必须修改lib才能接受这个字符。这可能很棘手,可能取决于 pdfjs 库版本。在我的例子中,我修改了版本 2.4.456。这是 pdf-find-controller.js https://drive.google.com/file/d/1pbDG7gmeBpPp8soC1MNOyXVRYxf5AomD/view?usp=sharing 的源代码,这是您应该更改的唯一文件。

然后你应该使用这些命令再次编译库:

npm install -g gulp-cli
npm install
gulp generic

你应该得到 pdf-viewer.js 结果文件作为这个 https://drive.google.com/file/d/1tWOW_P6-O8ATiQc9cOVt2LAToRB-niHc/view?usp=sharing

此修复程序专为法语设计,但适用于所有语言。我的建议是对原始文件和修改后的文件进行比较,然后您会看到应该添加的逻辑。

同时强制 npm 使用新版本的库,而不是痛苦阅读 npm-force-resolutions