最快修法: 如果 ChatGPT 说看不到你的 PDF,或者直接报 No text could be extracted from this file.,那这个 PDF 几乎肯定是没有文本层的扫描件。30 秒确认一下(打开文件,Cmd+A / Ctrl+A 全选,复制,再粘贴——粘不出任何文字就是扫描件),然后要么先 OCR 再重新上传,要么把每页导出成 PNG 图片、直接上传图片。走图片这条路有效,是因为 ChatGPT 的视觉模型读图片远比读纯图扫描 PDF 可靠。
上传 PDF 时真实发生的事:上传 → ChatGPT 服务端跑 PDF parser 抽取文本层 → 把抽到的文本拼进你的 prompt 发给模型。截至 2026 年 6 月,GPT-5.5 在文本层为空时有时会用视觉 / OCR 兜底,但这个兜底不稳定、还分账号档位——在网页版上经常不触发,免费档尤其如此。所以”读不出内容”几乎总是卡在抽取这一步:没有文本层、文件太大被截断、或被加密挡住。
下面 5 个原因覆盖了 95% 以上情形,按命中率从高到低排。
先对号入座
| 你看到的现象 | 最可能的原因 | 跳到 |
|---|---|---|
上传后立刻报 No text could be extracted from this file. | 扫描件 / 纯图 PDF(无文本层) | 原因 1 / Step 2 |
| 前面几页读得到,后面的内容却说”文件里没有” | 被截断——太大超出 token 预算 | 原因 2 / Step 3 |
| 提示”无法读取此文件”或弹密码框 | 加密 / DRM / 禁止复制 | 原因 3 / Step 4 |
抽出乱码、\frac{}{}、表格顺序错乱 | 编码异常 / 大量公式 / 老 PDF | 原因 4 / Step 5 |
| 之前能读,现在忽略这个文件 | 单对话挂的文件太多 | 原因 5 / Step 6 |
常见原因
1. PDF 是扫描件(纯图片,无文本层)
扫描的合同、拍照的发票、把图片塞进 PDF 的电子书——打开能看到字,但里面没有可抽取的文本流,parser 抽出来是空。这种情况就会触发那条原文报错 No text could be extracted from this file.
截至 2026 年 6 月,ChatGPT 可能会用视觉模型尝试 OCR,但在网页版上这个兜底不可靠、经常被跳过,所以扫描件就当成”上传前必须先处理”的文件来对待。
如何判断:用 Preview / Acrobat 打开 PDF,Cmd+A(Mac)或 Ctrl+A(Windows)全选,复制,粘到记事本。
- 能粘出文字 → 有文本层,问题在别处
- 粘出来全是空白或乱码 → 是扫描件,必须先 OCR(Step 2)
2. 文件太大被截断
ChatGPT 单文件上传上限是 512 MB,但文本抽取受一个紧得多的 token 预算约束(截至 2026 年 6 月,单文件抽取文本约 200 万 token 上限,再叠加整段对话的 context)。粗略估算:超过 50 页的 PDF 容易在中段被截断;100+ 页的几乎必然只读到前 30–40%。
模型压根没看到你问的那部分时,会回答”文件里没有这部分”——其实是它没读到。
如何判断:问”请从头到尾列出文件的目录 / 标题层级”。如果只列了前几节,就是被截断。
3. PDF 有密码 / DRM / 复制限制
带密码的 PDF 可以上传,但 parser 不会去解密,直接返回”无法读取”。某些出版社 DRM 保护的电子书即使没有打开密码也一样——因为复制被禁用了。
如何判断:本地打开看是否弹密码框;或查看 File → Properties → Security,看有没有”密码保护”或”禁止复制”标记。
4. 文本编码异常 / 含大量公式 / 老 PDF
某些老软件生成的 PDF 把字体嵌入了却没保留编码映射,抽出来是乱码 ASCII 串。数学论文里大量 LaTeX 公式 → 抽出来全是 \frac{}{}。表格大量合并单元格 → 行序错乱。
如何判断:让模型”逐字复述文件第 1 页第一段”。复述出乱码 / 缺字 = 编码问题。
5. 单对话已经塞太多文件
截至 2026 年 6 月,ChatGPT Plus 单条消息最多挂 20 个文件,每滚动 3 小时窗口约 80 个文件,且抽出来的文本总和仍要塞进模型 context。一个对话里堆好几个大 PDF,前面几个的内容就可能被挤出 context。
如何判断:开新对话只上传这一个 PDF。能读 = 是堆积问题。
最短修复路径
按耗时从短到长。
Step 1:30 秒确认是不是扫描件
用 Preview / Acrobat 打开 → Cmd+A / Ctrl+A → 复制 → 粘到记事本。
- 全空白 → 扫描件,跳 Step 2(OCR)
- 有文本 → 跳 Step 3(看大小)
Step 2:先 OCR 再上传(或者直接上传图片)
方案 A——用 OCR 加一层文本,再重新上传:
- macOS Preview:打开 PDF →
File → Export…→ 格式选PDF→ 勾选 “Apply OCR”(macOS 14 Sonoma 及以上) - 在线:ilovepdf.com/ocr_pdf 或 Adobe Acrobat 网页版
- 专业:ABBYY FineReader(付费,中英混排扫描精度最高)
- 本地命令行:
ocrmypdf input.pdf output.pdf -l chi_sim+eng(开源,准确率不错;brew install ocrmypdf安装)
方案 B——干脆不 OCR,直接传页面图片。 把每页导出成 PNG(Preview:File → Export…,格式选 PNG;或任意”PDF 转图片”工具),然后上传图片而不是 PDF。ChatGPT 的视觉模型读 PNG / JPEG 远比读纯图 PDF 可靠,所以 PDF 失败时这招常常一次就成。注意每张图控制在 20 MB 图片上限内,一次传几张。
OCR 不是完美的——长公式、手写、模糊扫描可能仍需导出 .txt 再人工校对一遍。
Step 3:拆 / 压
如果 PDF 大于 50 页:
# macOS:用 pdftk 拆
brew install pdftk-java
pdftk input.pdf cat 1-30 output part1.pdf
pdftk input.pdf cat 31-60 output part2.pdf
或直接在 Preview 里:选中页面缩略图 → 右键”Export selected pages”。
把每一段单独传,让模型分段总结,最后让它把所有段落总结合并成一份全文摘要。
Step 4:去密码再上传
- macOS Preview:打开 PDF(输入密码)→
File → Export as PDF→ 不勾”Encrypt” - 在线:smallpdf.com/unlock-pdf(注意隐私,机密文件别用)
- 命令行:
qpdf --decrypt --password=YOUR input.pdf out.pdf
Step 5:编码 / 复杂排版问题——转纯文本贴
如果 PDF 抽不出干净文本,最后手段:
- Preview 选中文本复制进
.txt文件 - 或用
pdftotext input.pdf output.txt(来自poppler)、Pandoc 转 Markdown - 直接把内容粘进对话框(每次约 4000 字符;长段落分几次粘)
模型读干净纯文本比读复杂 PDF 准多了。
Step 6:开新对话单独传
如果当前对话已经挂了好几个文件,开个新对话只挂这一个 PDF(每对话文件上限见原因 5)。
如何确认已修好
重新上传后,别问笼统的”帮我总结一下”。要问一个只有文档靠后部分才能回答的问题——比如”复述最后一页的最后一句”或”最后一张表里的数字是多少”。模型答对了,说明全文都进去了。如果它能复述第 1 页、却答不出结尾,那还是被截断了(回到 Step 3)。
预防建议
- 扫描件先本地 OCR 再上传——不要等到出错才补救
- 200 页大文档拆成 30–40 页一段,分段总结再合并
- 关键结论另存笔记——对话变长后 context 可能丢
- 含敏感信息的合同 / 财报,OCR 前先脱敏
- 长期处理长文档,用 Projects,让持久参考文件存在单次对话的 context 之外
常见问题
为什么 ChatGPT 报 “No text could be extracted from this file”? 这个 PDF 没有可被机器读取的文本层——是扫描件或纯图文件。ChatGPT 去抽文本层、抽到空,就停了。先 OCR,或把页面导出成 PNG 图片再传(Step 2)。
2026 年 ChatGPT 现在能读扫描件了吗? 有时能。GPT-5.5 有视觉 / OCR 兜底,但在网页版上不稳定、还分档位——经常不触发,免费档尤其如此。稳妥做法仍是自己先 OCR,或上传页面图片而不是扫描 PDF。
长 PDF 只读了前面一部分,为什么? 文本抽取受 token 预算约束,不只是 512 MB 文件大小那道关。超过约 50 页常被截断。拆成 30–40 页一段,分段总结再合并(Step 3)。
现在的文件上限是多少? 截至 2026 年 6 月:单文件最大 512 MB,图片最大 20 MB,表格最大 50 MB;抽取文本约 200 万 token 上限;Plus 单条消息约 20 个文件、每滚动 3 小时窗口约 80 个文件。
PDF 带密码,怎么让 ChatGPT 读?
先去掉加密——在 Preview 里打开后重新导出、不勾”Encrypt”,或运行 qpdf --decrypt --password=YOUR input.pdf out.pdf(Step 4)。parser 不会替你解密。