为什么PDF解析仍然困难
如果你在文档智能领域有过任何有意义的时间,你已经知道没有供应商幻灯片想要承认的秘密:现代企业AI的瓶颈很少是模型。而是PDF。
梯形图转SCL | 博途AI辅助编程文档 | AI模型价格对比 | AI工具导航 | ONNX模型库 | Vibe Coding教程 | PLC在线仿真器 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo
如果你在文档智能领域有过任何有意义的时间,你已经知道没有供应商幻灯片想要承认的秘密:现代企业AI的瓶颈很少是模型。而是PDF。
在过去三年里,我们投入了数十亿美元用于越来越大的语言模型、向量数据库、检索管道和多模态视觉堆栈。然而,当财富500强买家将200页的公用事业汇款、扫描的1980年代关税文件或尽职调查问卷放到我们门口时,同样的老问题又出现了。文本变得混乱。表格崩溃成不相连的数字带。阅读顺序像魔方一样被打乱。在某个地方,模型幻觉出一个从未在页面上出现过的值——审计师开始提出令人不舒服的问题。
这篇文章是为那些生活在这种现实中的工程师、架构师和产品负责人而写的。我将深入探讨PDF之所以如此的深层历史,七十年的解析技术弧线将我们带到这里,为什么新格式不断失败无法推翻国王,最重要的是,为什么对文档智能问题的诚实答案不是"Agentic AI解决它。"而是一个混合堆栈,其中代理推理发挥关键但有限的作用。
让我们开始…
1、PDF简史:"渲染胜利"如何变成了30年的解析税
PDF诞生于1993年,但它的遗传物质更古老。它的血统可以追溯到PostScript,这是Adobe在1982年构建的页面描述语言,以便任何地方的任何打印机都能以相同的方式渲染页面。PostScript是一种完整的编程语言——它有循环、变量和条件逻辑——为高端打印生产而设计。
当John Warnock博士在1991年启动Adobe的"Camelot项目"以解决跨平台文档可移植性时,他的团队做出了一个命运攸关的设计决定。他们采用了PostScript的成像模型——其在坐标平面上放置字形和曲线的指令——并剥离了编程构造。1993年商业发布的最终结果是一个针对屏幕显示优化的不可编程子集。一个"冻结"的文档。
这对人类读者来说是一个杰作。PDF承诺在班加罗尔的IBM PC上打开的财务报表将在波士顿的Macintosh上逐像素渲染。Adobe使Acrobat Reader免费。IRS采用了这种格式用于税务表格。一个飞轮开始旋转,至今未停:2008年,该格式成为ISO 32000国际标准,到2020年,仅通过Adobe Document Cloud就访问了超过3030亿个PDF。如今,保守估计全球现存超过2.5万亿个PDF文件。
在此过程中,竞争对手尝试并失败了。DjVu(AT&T实验室)在扫描的高分辨率档案中开辟了一个利基市场。Tumbleweed的Envoy短暂占据了企业市场。Common Ground、Farallon Replica——都承诺像素完美的跨平台复制。它们都没有在与Adobe建立的网络效应接触中幸存下来。
那么为什么这段历史是一个"悖论"?因为使PDF获胜的属性——固定布局的视觉一致性——正是使机器难以阅读的属性。
PDF不存储段落。它不存储表格。它甚至不能可靠地存储字符。它存储一系列低级绘图操作符,实际上说:"将笔移动到坐标(412.7, 689.3)。从这个字体子集渲染字形轮廓#38。移动到(419.1, 689.3)。渲染字形轮廓#62。"你看到的页面是渲染器产生的涌现幻觉。语义结构——这是一个标题,这是一个表格单元格,这是一个脚注——只存在于你的脑海中。
我们解决了它看起来的问题。我们意外地创造了围绕它意味着什么的三十年技术债务。
2、七十年解析,四十年OCR,三十年PDF:时间线
教机器阅读的梦想比大多数现代编程语言都要古老。理解这段历史的层次很重要,因为今天堆栈中的每个故障模式都回响着几十年前首次出现的问题。
1951年——Gismo。 David Shepard在康涅狄格州的阁楼里工作,建造了一台他命名为"Gismo"的机器,能够以大约90%的准确率识别打字字母。光学字符识别诞生了。到1960年代初,美国邮政局正在大规模使用原始OCR进行邮件分拣。
1976年——Kurzweil阅读机。 Raymond Kurzweil发布了第一台全能字体OCR,包装为盲人打印到语音设备。Stevie Wonder是第一个客户。这是一个分水岭:机器现在可以跨多种字体阅读而无需重新训练。
1980年代——Tesseract时代。惠普实验室开发了Tesseract,一个围绕刚性启发式管道构建的OCR引擎:二值化图像,将其分割为字符,并匹配模式。HP开源了它;Google在2006年接管并现代化了它。对于整整一代工程师来说,"OCR"实际上意味着Tesseract。
1993年——PDF到来,一个新的解析问题出现了。与扫描图像不同,数字原生PDF包含文本——它只是以一种为渲染而非阅读而设计的形式包含它。
1990年代-2010年代——模板时代。随着企业被PDF淹没,供应商以基于模板的智能文档处理回应。宣传是:"告诉我们发票上总额出现的位置(x=412, y=689, ±20px),我们将永远提取它。"它有效——直到供应商将模板改变半毫米,或者扫描倾斜三度,整个管道就破碎了。任何经历过这个时代的人都记得这种脆弱性。
2015年——深度学习转型。Tesseract 4.0将其模式匹配器替换为基于LSTM的循环神经网络。突然间,OCR系统开始将行读取为序列而不是孤立字符,在噪声、失真或不寻常的文档上恢复了显著的准确性。
2019-2022年——布局感知Transformer。微软研究院发布了LayoutLM,然后是LayoutLMv2和v3。第一次,单个模型联合在文本、视觉特征和2D空间坐标上进行预训练。它可以推理出页面左上角的粗体字符串可能是标题,而不仅仅是更多的正文文本。
2023年至今——视觉语言模型。OpenAI、Claude的视觉能力、Gemini和一波开放权重的VLM使得"只需截屏页面并询问模型那里有什么"成为可能。大约六个月,每个初创公司的宣传幻灯片都声称VLM已经永远结束了文档解析。
它们没有。我们将会说明原因。
这个时间线中编码的教训很简单:每个时代都解决了前一个时代的痛点并揭示了一个新的痛点。识别字符与理解文档不同。提取文本与保留结构不同。看到表格与知道表格在监管文件上下文中意味着什么不同。
3、为什么PDF仍然痛苦——深入底层
如果你从未在十六进制编辑器中打开过PDF,这一节将是一个小小的启示。根本困难在于人类感知和机器逻辑之间的差距。人类看到季度报告。机器看到属于规范称为 轮播对象结构(COS)的操作符流——一小部分对象类型(字典、流、数组、字符串、名称、布尔值、整数、实数、空值),它们共同编码页面上的每个绘图指令。
以下是实际断裂的地方。
3.1 /ToUnicode CMap悖论
PDF可以完美渲染给你看,但提取为完整的乱码——充满(cid:38)标记或空方块的字符串。这是因为PDF渲染器不需要Unicode来绘制页面。它只需要每个字符的字形轮廓——向量形状。当生成器对字体进行子集化时(一种常见的优化,只发送文档中实际使用的字形),它可以省略 /ToUnicode CMap,即将字形ID映射回Unicode代码点的查找表。视觉是完整的。语义内容被销毁了。文本无法恢复,除非回退到OCR——即使它是一个数字原生文件。
3.2 Tj / TJ字距调整陷阱
内容流中的文本位于BT(开始文本)和ET(结束文本)操作符之间。在这些块内,Tj和TJ操作符显示字符串。TJ形式是危险的——它允许数字字距调整,以文本空间单位的千分之一表示,在字形组之间。一个现实世界的片段可能看起来像:
[ (A) 120 (W) 120 (A) 95 (Y) ] TJ
这些数字不是空格。它们是使排版在视觉上美丽的微调。但朴素的解析器看到数字间隙并猜测: 空格字符?有时是。有时不是。"AWAY"这一行可能提取为"A W A Y"或"AWAY",这取决于解析器无法提前知道的启发式阈值。
3.3 表格的不存在
打开PDF规范并搜索"表格"这个词。你不会找到结构定义。你我所说的表格,对于文件来说,是两件不相关的东西画在一起:
- 路径操作符——m(移动到)、l(线到)、re(矩形)、S(描边)——产生网格线。
- 文本操作符——Tj、TJ——将字符放置在页面上的某个位置。
线条和文本之间没有语义链接。网格是视觉上的巧合。要提取表格,解析器必须检测线交点,推断单元格边界,然后使用空间接近性将文本片段与这些推断的单元格关联起来——这是一个启发式猜测游戏,每天都以微妙的方式出错。
3.4 阅读顺序是一个猜测游戏
PDF生成器以对文件大小最高效或对生成应用程序最方便的顺序写入内容。双列通讯可能先序列化右列而不是左列。带有侧边栏的页面可能直接在正文段落之间交错页脚文本。科学论文的参考文献可能先写,摘要最后写。读者的大脑使用视觉线索重构逻辑顺序;解析器只有内容流,必须进行空间聚类来恢复五岁孩子立即能做到的事情。
3.5 不可见、隐藏和页面外文本
PDF可以包含在可见页面边界外渲染的文本(用作内部元数据)、隐藏在图像后面的文本(用于扫描文档的可搜索性)或以透明颜色渲染的文本。朴素的解析器提取所有这些,产生"幽灵文本",当人类审阅者去验证时,幻觉出页面上找不到的内容。
3.6 然后是幻觉问题
以下是解析和LLM时代可靠性危机之间的诚实联系:大多数企业AI幻觉是上游解析失败的下游症状。当模型被交给一个碎片化的、字距调整破碎的、阅读顺序混乱的半标记字符串时,它做模型做的事情——它将这些片段缝合成它能产生的最连贯的叙事。这种连贯性通常是虚构的。高保真解析不是可有可无的。它是减少受监管工作流程中捏造的主要杠杆。
4、格式之战:PDF/UA、HTML5、Markdown
多年来,许多人认为新格式最终会取代PDF。他们部分正确,但大部分错误。
HTML5从每个技术指标来看都是比PDF更AI友好的格式。它是声明性的。一个<table>元素真的是一个表格。一个<h1>真的是一个标题。阅读顺序就是源顺序。元素是什么没有歧义。然而HTML5没有取代PDF用于法律合同、财务报表、监管文件或科学出版物,原因很顽固:HTML会重排。同一个HTML页面在手机、平板电脑和桌面上渲染不同。对于布局是法律工件的文档——签名必须出现在特定位置,分页对引用很重要——重排是不可接受的。
Markdown已经成为检索增强生成管道最喜欢的中间格式。它的吸引力在于清晰性:标题、列表和表格在语义分块中幸存,这保留了AI检索连贯信息所需的父上下文。Markdown作为目标表示是出色的。作为SEC文件或公证合同的交付格式,它是不可行的。
PDF/UA-1(ISO 14289-1,2012年发布)试图将可访问性标签附加到现有PDF格式上——使文档对屏幕阅读器可读,并且作为愉快的副作用,对机器更可解析。采用缓慢,因为标记是费力的,而且没有执行。
PDF/UA-2(ISO 14289-2),于2024年3月发布,是一个有意义的进化。它建立在PDF 2.0(ISO 32000-2)之上,引入了命名空间,允许MathML或EPUB风格的标签直接嵌入PDF结构中,并添加了新的语义标签,如FENote(替代旧的Note)、Strong和Em。关键的是,它是一个破坏性更改——与PDF/UA-1的命名空间约定不向后兼容。
PDF/A-3a,档案变体,允许机器可读的XML负载(如ZUGFeRD 2.3发票)嵌入人类可读的PDF中。这是欧盟正在实施EN 16931电子发票合规性的方式:一个文件,两个面孔,监管机构友好。
这些标准背后的推动力不是技术品味。而是法律。欧洲无障碍法案于2025年6月进入执行,美国州和地方政府数字内容的ADA Title II于2026年4月达到截止日期。结果是,第一次大规模地,文档正在以语义标签因为必须而被生产——文档智能团队正在继承作为合规性副作用的结构化数据集。
一个有用(尽管近似)的方法来为AI就绪性评分格式:
- 经典未标记PDF:约2/10。视觉快照。实际上零语义结构。
- PDF/UA-2(良好标记):约8/10。真正的结构映射。阅读顺序、表格语义和命名空间。
- HTML5 / Markdown:约10/10。纯声明性语义——但不适合作为法律工件。
PDF之所以幸存,是因为三个支柱:通用性(2.5万亿文件的安装基础)、法律归档(固定布局审计跟踪)和供应商中立标准化(ISO 32000)。没有新格式将在未来十年内取代这些属性。PDF将会……
原文链接:The PDF Paradox: Why Document Parsing Is Still Hard — And Why the Hybrid Stack Is Winning
汇智网翻译整理,转载请标明出处