You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将当前已打开的PDF文件转换为可读取的文本内容?

你直接打开本地PDF路径看到的<embed>标签是Chrome内置PDF预览器渲染的容器,文档内容没有暴露在DOM树中,所以无法直接通过DOM操作提取,必须通过读取PDF原始二进制内容解析得到文本。

本地读取PDF内容的可行方案

完全可以在不将PDF托管到服务器的前提下完成内容读取,主流方案分为两类:

1. 纯JavaScript客户端方案

所有解析逻辑都在本地浏览器环境执行,无需上传文件到任何服务端:

  • 可以引入pdf.js解析库,支持直接解析PDF二进制流提取文本,不需要后端交互。
  • 核心实现逻辑示例:
// 加载pdf.js库后执行
const fileReader = new FileReader();
fileReader.onload = async function() {
  const typedArray = new Uint8Array(this.result);
  const pdf = await pdfjsLib.getDocument(typedArray).promise;
  let fullText = '';
  // 逐页提取文本
  for (let pageNum = 1; pageNum <= pdf.numPages; pageNum++) {
    const page = await pdf.getPage(pageNum);
    const textContent = await page.getTextContent();
    const pageText = textContent.items.map(item => item.str).join(' ');
    fullText += pageText + '\n\n';
  }
  console.log('提取到的完整PDF文本:', fullText);
};
// 传入本地选中的PDF文件对象
fileReader.readAsArrayBuffer(localPdfFile);

如果是在普通网页场景下,需要用户通过文件选择器上传本地PDF文件获取文件对象;如果是Chrome扩展场景,申请file:///*权限后可以直接读取指定路径的PDF文件二进制内容。

2. Chrome扩展专属方案

如果是开发Chrome扩展,还可以直接调用Chrome内置PDF预览器的能力,无需引入额外解析库:

  • 申请activeTab和file:///*权限后,注入脚本到PDF预览页面,即可调用内置PDF viewer暴露的接口直接获取已解析的文本内容,实现成本更低。

其他替代方案

如果不想基于浏览器实现,也可以选择纯本地离线工具方案:

  • 用命令行工具pdftotext,本地执行即可直接导出PDF文本内容,不需要网络连接,也不需要上传文件。
  • 使用本地安装的办公软件(如WPS、Adobe Acrobat)自带的PDF转文本功能,直接离线完成转换。

内容的提问来源于stack exchange,提问作者BrunoLM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:45:02