← 退出

PDF 搜索

搜索PDF内文字定位关键词所在页码

只能搜索PDF里真实存在的文字内容,扫描版PDF(图片形式)没有文字层,没办法搜索。所有处理完全在浏览器本地完成,不会上传你的文件。

关于PDF 搜索

这个工具可以在一份 PDF 里搜索关键词,并告诉你关键词出现在第几页、在那一页出现了几次,同时显示命中位置附近的一小段文字。它先把整份文件的文字层读出来,再在你输入关键词时即时匹配。因此它只对包含真实文字的 PDF 有用,扫描件、图片型 PDF 没有文字层,搜不到任何内容。它是一个轻量的「定位在哪一页」的工具,不会在原文件里高亮关键词,也不支持正则表达式或多个关键词组合。

操作步骤

  1. 点击虚线框「点击选择PDF文件」,选择要搜索的 PDF。选中后会自动开始读取,期间显示「正在读取文件内容…」。
  2. 读取完成后,上方会出现搜索框,标题形如「在这份 N 页的文件里搜索」,其中 N 是文件的页数。
  3. 在搜索框里输入关键词。结果会随输入即时更新,不需要按回车。
  4. 查看「搜索结果(N 页匹配)」。每个结果卡片给出页码、「出现 N 次」,以及命中处前后各约 30 个字符的片段,片段首尾被截断时会加省略号。
  5. 记下页码,回到你的 PDF 阅读器翻到对应页面查看。如果没有命中,页面会显示「没有找到匹配的内容」。

一个实际示例

下面的结果是用与页面相同的匹配逻辑,对一份自制的三页测试文件实际运行得到的。文件第 1 页文字为「Invoice Summary Total due: 120 USD. Please pay the invoice.」,第 2 页为「Appendix No invoice here? Invoice again.」,第 3 页是空白页。搜索关键词 invoice 时,工具报告 2 页匹配:第 1 页出现 2 次,显示的片段为「Invoice Summary Total due: 120 USD. P…」;第 2 页出现 2 次,片段为「Appendix No invoice here? Invoice again.」;空白的第 3 页没有出现在结果中。可以看到搜索不区分大小写,「Invoice」和「invoice」都被计入了次数。

支持范围与已知限制

  • 搜索不区分大小写,按字面文字匹配,不支持通配符、正则表达式、多关键词、整词匹配。输入中的特殊符号会被当作普通字符处理。
  • 每一页最多显示前 3 条互不重叠的命中片段(前后各约 30 个字符);再往后的命中以及离得太近的命中不会单独展示,只体现在「出现 N 次」的数字里。
  • 文字是按 PDF 内部的片段拼接起来的:中日韩文字之间不加空格,其他文字之间补一个空格,连续空白会合并成一个空格。个别 PDF 把一个词拆得很碎时,仍可能搜不到完整的词,可以换成更短的关键词再试。
  • 扫描件和图片型 PDF 没有文字层,搜索不到内容。此时读取不会报错,只是任何关键词都显示「没有找到匹配的内容」。
  • 不能在原文件里高亮或跳转,也不能把搜索结果导出。
  • 带打开密码或损坏的文件会提示「无法读取这份文件的文字内容,可能是扫描版PDF(没有真实文字层)。」这句提示并不一定意味着文件是扫描件,也可能是文件本身无法打开。
  • 页数很多的文件在读取阶段会比较慢,因为每一页都要解析。

为什么明明有这个词却搜不到?

常见原因有三个:一是文件其实是扫描图片;二是这个词在 PDF 内部被拆成了几个片段,拼接时中间多了空格;三是页面上看到的字符和文件内部存储的字符不一致,比如使用了特殊字体或连字。可以试着换一个更短的关键词,或者只搜索词的一部分。

「出现 N 次」是怎么算的?

是在这一页的全部文字里,统计关键词(不分大小写)出现的次数。它统计的是字符串出现的次数,不是单词数。例如搜索 art 时,也会算上 start、party 里的 art。如果两处出现位置相互重叠,统计规则取决于正则匹配的方式,通常是不重叠地依次计数。

它和浏览器自带的搜索有什么不同?

浏览器或阅读器的 Ctrl+F 会在页面上直接高亮位置。这个工具的特点是一次性列出所有命中的页码和次数,适合在页数多的文件里先找出相关页面。找到页码之后,如果想看高亮,仍然需要在阅读器里再搜索一次。

隐私与处理方式

你选择的文件只在浏览器内读取,文字由本地打包的 pdf.js 组件解析,页面中没有上传文件或搜索词的网络请求。读出的文字和你输入的关键词只保存在当前页面的内存里,刷新或关闭页面后即清除。