第十三章:PDF的诅咒:数字时代的“死灵书”

第一部分:我们都主动签下的“魔鬼契约”

欢迎回来,时空旅行者。在你沉睡的这段时间里,我们(你的后辈)为了解决一个你可能只依稀记得的古老问题,与一个黑暗的存在签订了一份契约。这个存在的名字,叫做“便携式文档格式”(Portable DocumentFormat),或者,用它更广为人知的魔鬼代号:PDF。
这份契约的核心内容是:“我(PDF)将赐予你们在任何设备、任何操作系统上完美再现文档视觉外观的能力。作为交换,你们必须献祭文档中所有的数据、结构和理智。”
我们……含泪同意了。
对于一个现代程序员来说,PDF是一种在哲学层面就令人憎恶的东西1。它是“我存在的祸根”(the bane of my existence)2。在程序员的黑话里,流传着一句充满怨念的箴言:“PDF是数据赴死之地”(PDFs are where data goes to die)3
这种刻骨铭心的恨意,并不仅仅是因为程序员讨厌写文档4。不,这是一种更深层次的、近乎于免疫系统的排斥反应。
你瞧,你(旅行者)和我们(现代程序员)的世界,是建立在结构之上的。我们信仰的图腾是JSON、XML、YAML,这些格式的核心是语义和机器可读性5。数据在我们手中是“活”的——它是流动的、可塑的、有意义的。
而PDF,正如你即将看到的,是这一切的对立面。它是一种痴迷于表象、视觉和不可变性的格式6。它的唯一目标就是创造完美的“数字纸张”(digital paper)7
为了实现这个目标,PDF会愉快地接收你那份结构优美、数据丰富的电子表格,然后(比喻性地)将其“杀死”,剥去所有的数据内涵,再把它的“视觉尸体”完美地保存在一层“数字琥珀”(digital amber)中8
本章的任务,就是向你解释,我们是如何心甘情愿地走进这个布满精美排版陷阱的。我们将解剖这份契约的起源、它那令人发指的内部结构、以及它如何催生了当代计算机科学中最荒诞的“数据复活”仪式。

第二部分:一场高贵的探索,一桩深刻的原罪:“卡米洛特”创世纪

PDF并非诞生于恶意。恰恰相反,它是一位高贵的圣骑士,出发去屠杀一条肆虐乡里的恶龙。这条龙的名字,叫作“文档混沌”。
在20世纪80年代末到90年代初,我们生活在一个技术上的“巴别塔”时期。个人电脑革命爆发了,但Mac、Windows、UNIX和MS-DOS都在说自己的方言。那是一个“桌面出版”(Desktop Publishing)群雄割据的混乱时代9,也是一场旷日持久的“字体战争”(Font Wars)的焦土10
在那个黑暗的年代,跨平台发送一个文档,不亚于一场赌博。你精心在你的Mac上用PageMaker排好了一份报告,发给一个用Windows的客户。他打开一看,字体丢失、图片错位、边距崩塌。用一位亲历者的话说,那份文档看起来就像一幅“杰克逊·波洛克(Jackson Pollock)的泼墨画”11。这是一个“普遍存在的商业问题”12
就在此时,我们的英雄登场了。Adobe公司的联合创始人约翰·沃诺克博士(Dr. John Warnock)11
1990年夏天,沃诺克撰写了一份充满理想主义的白皮书,代号:“卡米洛特项目”(The Camelot Project)12。他的目标非常崇高:解决“在不同计算机应用程序和系统之间,无法可靠地交换高保真(high fidelity)文档”的问题12
他的愿景是:“这些文档应该可以在任何显示器上查看,也应该可以在任何现代打印机上打印”12。他预言:“如果这个问题能被解决,那么人们工作的基本方式将会改变”12
他赌对了。但他解决问题的方式,也埋下了诅咒的种子。
这就是PDF的“原罪”:从“卡米洛特项目”的第一天起,它的全部、唯一、且排他性的目标,就是“视觉保真度”(即“外观”,appearance)6。它完全没有考虑(甚至可以说,主动牺牲了)“数据保真度”(即“内容”,content)6
为了实现这种跨平台的完美“外观”,沃诺克的团队选择了一个强大的武器:PostScript13。PostScript是Adobe自己的“页面描述语言”(Page Description Language),它本质上不是一种文档格式,而是一种用于打印机的2D绘图语言14
PDF,因此,从出生的那一刻起,它的基因就不是一个“文档”,而是一个打包好的“绘图指令集”。
沃诺克爵士的“卡米洛特”探险队成功了。他们找到了视觉保真的“圣杯”,代价是将数据永远地锁在了石头里。具有讽刺意味的是,PDF在1993年刚推出时,市场反响极为冷淡15。它太超前了,文件太大,渲染太慢,在那个拨号上网的时代,它显得笨重不堪。直到多年后,当带宽追上了它的野心,这条恶龙才真正开始统治世界。

第三部分:深入《死灵书》:为什么PDF是程序员的恐怖故事

好了,旅行者,系好安全带。我们要打开这本“死灵书”了。你作为一个程序员的本能会让你想要尖叫。请坚持住。

3.1 这不是文档,这是一幅画(以及异教徒的坐标系)

你必须理解的第一件事:PDF文件里没有文本(至少没有你理解的那种文本)16
当你打开一个Word文档时,软件知道“这是一个段落,由这些句子组成,这些句子由这些单词组成”。而当你打开一个PDF时,阅读器所知道的(极度简化后)大概是这样的17

  1. 使用“Times New Roman”字体,12号。
  2. 移动到页面坐标 (144, 72)。
  3. 绘制字形:'H'。
  4. 水平移动 5.8 个单位。
  5. 绘制字形:'e'。
  6. 水平移动 4.2 个单位。
  7. 绘制字形:'l'。
  8. ...

你看到了吗?PDF的世界里没有“单词”、“句子”或“段落”这些语义概念17。它只有“在特定坐标(x,y)绘制特定字形”的指令。它不是一个文档,它是一个矢量画板。
更糟糕的是,为了存心(也许不是)折磨后来的程序员,PDF从其母体PostScript那里继承了一个堪称异端的设定:它的坐标系18
在几乎所有现代计算机图形系统中(包括Web、Windows、iOS),(0,0)原点都在左上角(top-left),X轴向右,Y轴向下18。这符合我们从上到下、从左到右的阅读习惯。
而PDF呢?它的(0,0)原点在左下角(bottom-left)18。X轴向右,Y轴向上。
这个看似微小的技术细节,其实是一个深刻的“文化信号”。它暴露出PDF的血统——它不属于你(程序员)的“数字屏幕世界”;它属于“物理印刷世界”18。它思考的方式不是“在屏幕上显示”,而是“如何在打印机上从一张白纸的底部开始堆叠墨水”。
在你尝试从PDF中提取任何数据之前,你必须先在脑海中把整个世界颠倒过来。这就像是一种入会仪式,PDF在用它那来自印刷机的古老语言对你低吼:“凡人,你不受欢迎。”

3.2 复制粘贴大屠杀:“ti”连字惨案

如果PDF只是“内部结构诡异”,那也就算了。但它的诅咒会溢出到现实世界,制造出一种每个普通用户都经历过的灵异现象:为什么从PDF里复制粘贴文本,结果总是一团糟?16
有时单词会被劈开,有时整段话的顺序会错乱(因为机器是按“绘制顺序”而非“阅读顺序”去抓取那些字形的),但最经典的案例,是“ti”惨案19
你可能见过:你试图复制一个包含“ti”组合的单词(比如 "information"),粘贴出来后,那个“ti”神秘地变成了一个方框□、一个问号?,或者一个诡异的大于号>20
这是怎么回事?你是否遭遇了黑客攻击?不。你只是见证了PDF的“原罪”在微观尺度上的显现。
你遇到的,是一个“连字”(Ligature)19
在高级排版中,某些字母组合(如 'f' 和 'i')靠得太近会很难看('f'的弯钩会和'i'的点打架)。为了美观,排版师会用一个单独设计的、融合在一起的符号fi来代替f和i。同理,为了防止 't' 的横杠和 'i' 的点挤在一起,也存在ti的连字21
现在,回想一下:PDF的唯一目标是什么?视觉保真度。
所以,当PDF被创建时,它为了让排版“更好看”,就真的把“t”和“i”这两个独立的字母丢掉了,转而存储了那个单独的、合并的ti符号19
当你复制时,你复制的是那个特殊的ti符号。当你粘贴到记事本或浏览器时,你的系统(它没有PDF里嵌入的那个特殊字体)一脸茫然:“这是个什么玩意儿?”它不认识这个符号,于是只能显示一个占位符□21
这就是PDF哲学的完美缩影,一个令人不寒而栗的微观悲剧:
为了追求视觉上的美观,PDF会毫不犹豫地摧毁底层的语义数据。
对于一个程序员来说,t(ASCII 84)和 i(ASCII 105)是神圣不可侵犯的意义。而对于PDF来说,它们只是需要被漂亮排列的形状。PDF为了“形状”而献祭了“意义”。这是最高级别的异端行为。

第四部分:荒诞的循环:数据赴死之地(以及错误的复活)

现在我们理解了PDF的本质。它是一个只关心“长相”的格式。这种特性,与我们这个日益依赖“数据”的世界,产生了灾难性的冲突,并催生了一系列荒诞不经的行为。

4.1 “PDF是数据赴死之地”

正如我们在开头提到的,PDF是“数据赴死之地”3。而程序员们在试图“盗墓”时,发出了撕心裂肺的呐喊。在某个程序员论坛(Reddit)上,一位绝望的开发者留下了这句堪称“PDF诅咒”的圣经:
“我真想宰了那些把成千上万行关键数据塞进PDF而不是用那该死的Excel表格(a gd Excel sheet)发过来的人!!”
为什么?为什么会有人这么做?
因为沃诺克的“卡米洛特”项目12实在太成功了。他成功地创造出了完美的“数字纸张”7,以至于非技术用户(比如你老板、客户,或者银行职员)现在真的以为PDF就是数据。
在另一个程序员聚集地(Hacker News),流传着一个更令人绝望的真实故事22
一位用户抱怨,他的信用合作社(Credit Union)只提供PDF格式的月度账单。当他(一个程序员)抱怨这种格式无法提取数据用于个人记账时,银行的柜员和电话客服都表现得“惊人地无知”(magnificently ignorant)。
在那位银行职员的世界观里,“PDF 就是 银行使用的数据”,而且“没有其他形式的数据存在”22
这就是诅咒的核心。那个曾经被“杰克逊·波洛克”文档11吓坏了的普通用户,现在将PDF的“不可变性”视为救赎。在他们看来,Excel是“危险的”(数据可以被篡改),而PDF是“安全的”(它被冻结了)。
他们再也无法区分数据的“表象”和数据本身22
讽刺的是,程序员感受到的“诅咒”(无法提取数据),恰恰是普通用户所追求的“祝福”(数据无法被更改)。

4.2 地狱第七层:表格提取

在这片数据荒原上,有一个地方的痛苦最为集中、哀嚎最为响亮。这个地方,就是“表格提取”(Table Extraction)23
你(旅行者)可能会天真地问:“提取一个表格有多难?不就是行列数据吗?”
你又忘了。在PDF里,表格根本不存在!17
一个表格,在PDF的《死灵书》里,无非是:

  • 一堆在(x, y)坐标上绘制的文本17
  • 一堆在(x+50, y)坐标上绘制的文本。
  • 一堆在(x+100, y)坐标上绘制的文本。
  • 以及一大堆单独的“从A点到B点画一条线”的绘图指令24

文本和线条之间毫无关联。
这个“PDF地狱”(PDF hell)25催生了一批英勇(但大多失败了)的“盗墓”工具,比如 Tabula23 和 Camelot26
但这些工具并不是在“解析”数据。它们是在搞“数字考古”(digital archaeology)。
它们使用“计算机视觉”(computer vision)26和复杂的启发式算法(heuristics,即“猜”)来推断(infer)结构。它们看着那些散落的文本“废墟”,喃喃自语:“嗯……这些文本的X坐标好像对得挺齐……它们大概属于同一列吧?”17“嗯……这里有几条线……它们可能构成了一个单元格?”
这就是为什么这些工具如此“脆弱”(brittle)27
只要创建PDF的人一时兴起,改了下字体、让某一列宽了2个像素、或者(最常见的)让一个表格跨越了两页,整套启发式算法就会瞬间崩溃23。这也解释了为什么这些工具(比如Camelot)的文档会明确告诉你:它们只适用于“基于文本的PDF”,对“扫描文档”无能为力28
这就引出了我们这场荒诞剧的最高潮。

4.3 终极猜谜游戏:OCR,一场数字通灵

我们一直讨论的,还只是“第一类地狱”:由机器(如Word或Excel)直接生成的“数字PDF”。
现在,欢迎来到“第二类地狱”:扫描PDF(Scanned PDF)29
一个“扫描PDF”,甚至连“在(x,y)处绘制'H'”的指令都没有。它只有一个东西:一张照片。一张纸的巨幅照片。
于是,人类发明了计算机史上最荒诞的“数据循环”8。这个循环是如此愚蠢,以至于它简直像是一种行为艺术:

  1. 起点: 你的会计部门有一个结构完美的数据库(比如SQL)。
  2. 步骤一(献祭): 他们点击“打印”,将这些“活”数据变成纸张。
  3. 步骤二(死亡): 他们将这张纸放入扫描仪,生成一个PDF。现在,这些数据已经死了。它不再是数据,它是一张“数据的照片”。
  4. 步骤三(通灵): 你(程序员)来了。你老板让你“把这1000份扫描PDF里的数据导出来”。你别无选择,只能使用OCR(光学字符识别)30
  5. 步骤四(复活?): OCR软件(一个“数字通灵师”)开始“端详”这张照片,然后猜测:“这个形状……看起来像个'8'……”“这个污点……可能是个'f'?”

这个过程,在过去几十年里,一直是“纯粹的折磨”(pure torture)31,而且极度“脆弱”27
但就在最近几年,这个荒诞的循环变得更加荒诞了——它现在由价值数十亿美元的AI驱动。
旧的OCR是基于模板和规则的。新的方法呢?“你直接把PDF上传给ChatGPT就行了”31
我们现在使用地球上最强大的多模态AI模型,比如GPT-4 Vision32 和 Gemini33,来执行这个“通灵”仪式34
请花一秒钟体会一下这个过程的疯狂:
我们(人类)正在使用一个耗资数十亿美元、训练在全人类知识和图像上的超级人工智能,去模拟一个人类实习生33,让他逐字阅读一个电脑打印出来、又被扫描回电脑的文档,以便猜出那个最初就在电脑里的结构化数据。
这,是有史以来最昂贵、计算资源消耗最大、最愚蠢的“撤销”(Undo)操作。
这就是PDF的诅咒。一个由我们自己创造、并由AI驱动的、永恒的荒诞循环。

第五部分:反对派:“活着”的数据(以及为什么你的JSON上不了法庭)

“够了!”你(旅行者)可能会大喊,“为什么你们这群傻瓜不直接用别的格式?比如HTML?或者(你在第四章学到的)JSON?”
问得好。答案是:我们试了。但我们发现,PDF的“诅咒”恰恰是某些行业赖以生存的“祝福”。

5.1 HTML:流动的河 vs. PDF:冻结的湖

HTML(超文本标记语言)在哲学上是PDF的镜像。

  • HTML关心的是“内容”和“结构”6。它被设计用来“重排”(Reflow)6,即内容会像河流一样,自动适应你屏幕的宽度35
  • PDF关心的是“外观”和“布局”6。它被设计用来“固定”。它就像一个冻结的湖。第4页永远是第4T页,无论你是在手机上看还是在巨幕上投影。

5.2 JSON:机器的“世界语”

而JSON(JavaScript Object Notation)则是程序员真正想要的5。它根本不关心“外观”。它就是数据。它是结构化的、轻量级的、纯粹为机器交换而生36
如果说PDF是“数字纸张”7,那么JSON就是“数字数据”。
那么,为什么我们不能用JSON或HTML取代PDF呢?
因为,当你(程序员)看到“流动”和“可变”的JSON数据时,你看到的是“灵活”和“强大”。而当一个律师、一个科学家或一个档案管理员看到同样的东西时,他们看到的是“不可靠”和“混乱”。
你不能走进法庭,对法官说:“法官大人,证据在api.mybank.com/data.json的第450行。” 因为那个API响应在下一秒可能就变了。
但你可以走进法庭,提交一份PDF,说:“法官大人,证据在120号文件的第42页第3段。”37 你和法官、原告、被告,看到的都是一模一样的东西。
PDF的“诅咒”(数据的死亡和不可变性),正是它在法律上的“祝福”(作为“记录”的可靠性)。
这引出了我们的核心冲突,最好用一个表格来总结:

格式大混战:一场关于哲学的战争

特性 PDF (数字纸张) HTML (活动内容) JSON (纯粹数据)
首要目标 外观6。精确的视觉复刻。 内容6。语义化的结构。 数据5。机器可读的交换。
核心单元 一个坐标(x,y) 和一个字形17 一个语义标签 (如 <p>, <h1>)35 一个键值对 (如 "name": "Bob")38
布局 固定的 (Fixed)。 不可变。所见即所有人所见39 流动的 (Fluid)。 内容“重排”以适应屏幕6 不存在的。 纯粹的结构。外观是无关紧要的。
人类可读性 高。 被设计成像纸一样供人阅读。 中。 源码可读,但混杂标签。需要渲染后阅读。 低。 源码可读,但很密集。非为人类消费设计5
机器可读性 灾难性的。 “数据赴死之地”3。需要OCR/AI来“猜”30 高。 易于被搜索引擎和浏览器解析35 完美的。 专门为机器设计5
谁爱它? 律师40, 科学家41, 档案管理员42, 银行职员22 Web开发者, 博主, 搜索引擎35 软件开发者, API, 数据库38
谁恨它? 软件开发者2 讨厌失去像素级控制的设计师。 几乎所有非技术人员22
隐喻 数字琥珀8 / 死灵书8 流动的河 结构化的仓库

第六部分:结论:诅咒就是祝福(为什么我们被困在这“数字琥珀”里)

现在,旅行者,你终于明白了。PDF不是一个“失败”的数据格式;它是一个“完美”的归档格式。我们之所以憎恨它,正是因为它如此完美地完成了它那(与我们程序员)背道而驰的任务。
它的“缺陷”,就是它的“功能”。我们被困在它的诅咒里,因为现代文明在三个关键领域依赖它的祝福:

6.1 法律之盾

在法律界,PDF不是一种“便利”,而是一种“必需品”40
一份合同或法庭文件必须是不可变的。PDF作为一种“电子记录”(electronic record),“在法庭上可以被采纳为证据”37,因为它被修改后会留下电子痕迹。此外,它原生支持法律工作流中的关键功能:涂黑(Redaction,即永久删除敏感信息)、密码保护和具有法律效力的电子签名(e-signatures)43

6.2 学术之锚

在学术界,PDF同样是铁打的标准。为什么?因为固定的页面布局对于“引用和学术诚信至关重要”39
科学的进步建立在可复现和可验证的基础上。学者们需要能够精确引用。当一位学者引用“某某, 2024, 第237页”时,他必须100%确定全世界的同行看到的“第237页”都是完全相同的。
HTML那种“流动”的页面,根本没有固定的页码39。PDF是学术界的“记录版本”(version of record)44。它也是一种优秀的方式,让学者可以下载论文,脱机阅读,而不必忍受出版商网站上那些闪烁的广告45

6.3 终极形态:PDF/A,完美的数字琥珀

如果说普通PDF是“数字琥珀”,那么 PDF/A 就是它的最终、完美、且被法律固化的形态。
“A”代表“存档”(Archival)42
PDF/A是一种严格的ISO国际标准46,专门为长期归档(Long-term Archiving)而设计47。它的目标是创造一个数字文件,确保人类在50年、100年后,依然能以一模一样的方式打开并查看它42
为了实现这个目标,PDF/A标准强制执行了我们所说的“诅咒”。它明令禁止任何可能导致“活性”或“不确定性”的元素:

  1. 禁止外部依赖: 所有字体必须100%嵌入文件内部46。禁止链接外部字体。
  2. 禁止多媒体: 禁止嵌入任何音频或视频内容42
  3. 禁止代码: 严禁包含任何JavaScript或可执行文件48
  4. 禁止加密: 禁止使用加密46。(因为加密标准可能会过时,导致文件在未来无法打开)。

看,PDF/A标准就是一份法律文件,它命令PDF“必须死亡”。它强迫文件进入一种完全自给自足的“数字木乃伊”状态。
你,作为程序员,所感受到的那种“数据窒息感”和“缺乏活性”的诅咒,恰恰是档案管理员、律师和科学家所依赖的、跨越时间的神圣保证。
所以,下次当你对着一份PDF表格,咒骂着试图用AI去“通灵”那些该死的数据时31,请记住:你不是在和一个设计拙劣的格式作斗争。
你,是在和“文明”本身的需求作斗争。



  1. The Trouble with PDFs : r/programming - Reddit, 访问时间为 十月 27, 2025, https://www.reddit.com/r/programming/comments/64f16/the-trouble-with-pdfs/ ↩︎

  2. Documentation is literally the bane of my existence. Just let me write code... - Reddit, 访问时间为 十月 27, 2025, https://www.reddit.com/r/ProgrammerHumor/comments/zayfw9/documentation-is_literally_the_bane_of_my/ ↩︎ ↩︎

  3. Does extracting data from PDFs just never work properly? : r ... - Reddit, 访问时间为 十月 27, 2025, https://www.reddit.com/r/AskProgramming/comments/1ahfeti/does_extracting_data-from-pdfs-just-never-work/ ↩︎ ↩︎ ↩︎

  4. Why do Programmers Hate Documenting? : r/programming - Reddit, 访问时间为 十月 27, 2025, https://www.reddit.com/r/programming/comments/1ff643/why_do_programmers_hate-documenting/ ↩︎

  5. Why do or should programmers save data in text based formats like JSON or XML instead of binary? - Software Engineering Stack Exchange, 访问时间为 十月 27, 2025, https://softwareengineering.stackexchange.com/questions/419893/why-do-or-should-programmers-save-data-in-text-based-formats-like-json-or-xml-in ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  6. PDF or HTML: Which is the Best Format for Document Viewing?, 访问时间为 十月 27, 2025, https://apryse.com/blog/html-vs-pdf-for-document-viewing ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  7. 访问时间为 十月 27, 2025, https://www.talonic.com/blog/why-structured-data-from-pdfs-improves-business-reporting#:~:text=Each%20piece%20conforms%20to%20a,trends%2C%20risks%2C%20or%20opportunities↩︎ ↩︎ ↩︎

  8. 程序员复活手册:从BASIC到AI(大纲) ↩︎ ↩︎ ↩︎ ↩︎

  9. (PDF) History of Desktop Publishing - ResearchGate, 访问时间为 十月 27, 2025, https://www.researchgate.net/publication/388949745_History_of_Desktop_Publishing ↩︎

  10. The Font Wars, Part 1 - ResearchGate, 访问时间为 十月 27, 2025, https://www.researchgate.net/publication/342371643_The_Font_Wars_Part_1 ↩︎

  11. Who Created the PDF? - the Adobe Blog, 访问时间为 十月 27, 2025, https://blog.adobe.com/en/publish/2015/06/18/who-created-pdf ↩︎ ↩︎ ↩︎

  12. Evolution of the Digital Document: Celebrating Adobe Acrobat's 25th ..., 访问时间为 十月 27, 2025, https://blog.adobe.com/en/publish/2018/06/14/evolution-digital-document-celebrating-adobe-acrobats-25th-anniversary ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  13. The Camelot Project - John Warnock, 访问时间为 十月 27, 2025, https://pdfa.org/wp-content/uploads/2020/07/warnock_camelot.pdf ↩︎

  14. PostScript Language Reference, third edition - Adobe, 访问时间为 十月 27, 2025, https://www.adobe.com/jp/print/postscript/pdfs/PLRM.pdf ↩︎

  15. History of PDF - Wikipedia, 访问时间为 十月 27, 2025, https://en.wikipedia.org/wiki/History_of_PDF ↩︎

  16. Why is copy/pasting text from a PDF an absolute nightmare : r/NoStupidQuestions - Reddit, 访问时间为 十月 27, 2025, https://www.reddit.com/r/NoStupidQuestions/comments/lxbtu7/why_is_copypasting_text_from_a_pdf_an_absolute/ ↩︎ ↩︎

  17. parsing - Why is extracting tabular data from PDF files hard? - Stack ..., 访问时间为 十月 27, 2025, https://stackoverflow.com/questions/14001973/why-is-extracting-tabular-data-from-pdf-files-hard ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  18. How to Figure Out Where Something Will Be Drawn on a PDF Page, 访问时间为 十月 27, 2025, https://labs.appligent.com/appligent-labs/how-to-figure-out-where-something-will-be-drawn-on-a-pdf-page ↩︎ ↩︎ ↩︎ ↩︎

  19. ELI5: why does copy/pasting from pdfs sometimes have a problem with the 'ti' combination of letters? - Reddit, 访问时间为 十月 27, 2025, https://www.reddit.com/r/explainlikeimfive/comments/1ag92k3/eli5_why_does_copypasting_from_pdfs_sometimes/ ↩︎ ↩︎ ↩︎

  20. Issues when I copy/paste from a pdf - Anki - Reddit, 访问时间为 十月 27, 2025, https://www.reddit.com/r/Anki/comments/7ldd1x/issues_when_i_copypaste_from_a_pdf/ ↩︎

  21. ELI5: why does copy/pasting from pdfs sometimes have a problem ..., 访问时间为 十月 27, 2025, https://www.reddit.com/r/explainlikeimeli5/comments/1ag92k3/eli5_why_does_copypasting_from_pdfs_sometimes/ ↩︎ ↩︎

  22. Why extracting data from PDFs is still a nightmare | Hacker News, 访问时间为 十月 27, 2025, https://news.ycombinator.com/item?id=43895183 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  23. Does extracting data from PDFs just never work properly? : r/AskProgramming - Reddit, 访问时间为 十月 27, 2025, https://www.reddit.com/r/AskProgramming/comments/1ahfeti/does_extracting_data-from-pdfs-just-never-work/ ↩︎ ↩︎ ↩︎

  24. Why is extracting data from PDFs so unbelievably hard? | by Julian Darley | AI Futures | Sep, 2025 | Medium, 访问时间为 十月 27, 2025, https://medium.com/ai-futures/why-is-extracting-data-from-pdfs-so-unbelievably-hard-f5a61c064fcd ↩︎

  25. PDF hell. Best way to extract info from PDFs? : r/AskProgramming - Reddit, 访问时间为 十月 27, 2025, https://www.reddit.com/r/AskProgramming/comments/8pm3vu/pdf_hell_best_way_to_extract_info_from_pdfs/ ↩︎

  26. Python Libraries to Extract Tables From PDF: A Comparison - Unstract, 访问时间为 十月 27, 2025, https://unstract.com/blog/extract-tables-from-pdf-python/ ↩︎ ↩︎

  27. I Tried 6 PDF Extraction Tools—Here's What I Learned : r/automation - Reddit, 访问时间为 十月 27, 2025, https://www.reddit.com/r/automation/comments/1jp5i3t/i_tried_6_pdf_extraction_toolsheres_what_i_learned/ ↩︎ ↩︎

  28. Camelot: PDF Table Extraction for Humans — Camelot 1.0.9 documentation, 访问时间为 十月 27, 2025, https://camelot-py.readthedocs.io/ ↩︎

  29. Why Extracting Data from PDFs Remains a Nightmare for Data ..., 访问时间为 十月 27, 2025, https://it.slashdot.org/story/25/03/11/1726218/why-extracting-data-from-pdfs-remains-a-nightmare-for-data-experts ↩︎

  30. What's so Hard about PDF Text Extraction?– Reasons and Solutions - ComPDF, 访问时间为 十月 27, 2025, https://www.compdf.com/blog/what-is-so-hard-about-pdf-text-extraction ↩︎ ↩︎

  31. Extracting Data from PDFs – From Nightmare to Magic! - Tech AI, 访问时间为 十月 27, 2025, http://techaiblog.in/data-processing/extracting-data-from-pdfs-from-nightmare-to-magic/ ↩︎ ↩︎ ↩︎

  32. Struggling with Complex Table Data Extraction from PDF Files - Need Solutions, 访问时间为 十月 27, 2025, https://community.latenode.com/t/struggling-with-complex-table-data-extraction-from-pdf-files-need-solutions/39105 ↩︎

  33. Ingesting PDFs and why Gemini 2.0 changes everything - Hacker News, 访问时间为 十月 27, 2025, https://news.ycombinator.com/item?id=42952605 ↩︎ ↩︎

  34. Pdf unstructured data extraction : r/mlops - Reddit, 访问时间为 十月 27, 2025, https://www.reddit.com/r/mlops/comments/1j363zh/pdf_unstructured_data_extraction/ ↩︎

  35. PDF vs. HTML: Which Is Better for Online Content? - Medium, 访问时间为 十月 27, 2025, https://medium.com/@thepdfspace/pdf-vs-html-which-is-better-for-online-content-7db9c6a627d1 ↩︎ ↩︎ ↩︎ ↩︎

  36. Digital PDF vs. machine-readable JSON format | PLANET AI, 访问时间为 十月 27, 2025, https://planet-ai.com/digital-pdf-vs-machine-readable-json-format/ ↩︎

  37. Why PDF Will Hold Up in Court (And in Your Law Firm) - Datamax Arkansas, 访问时间为 十月 27, 2025, https://www.datamaxarkansas.com/blog/why-pdf-will-hold-up-in-court-and-in-your-law-firm ↩︎ ↩︎

  38. Why is JSON so popular? Developers want out of the syntax business. - Reddit, 访问时间为 十月 27, 2025, https://www.reddit.com/r/programming/comments/i6xdr/why_is_json_so_popular_developers_want_out_of_the/ ↩︎ ↩︎

  39. The Role of PDFs in Academic Research and Publishing - Mapsoft, 访问时间为 十月 27, 2025, https://mapsoft.com/the-role-of-pdfs-in-academic-research-and-publishing/ ↩︎ ↩︎ ↩︎

  40. Importance of PDF Files in Legal Sector - PDFGPT.IO, 访问时间为 十月 27, 2025, https://www.pdfgpt.io/blog/importance-of-pdf-files-in-legal-sector ↩︎ ↩︎

  41. 访问时间为 十月 27, 2025, https://mapsoft.com/the-role-of-pdfs-in-academic-research-and-publishing/#:~:text=Unlike%20word%20processing%20formats%20that,for%20citations%20and%20academic%20integrity↩︎

  42. PDF/A File Format - What is a PDF/A file? | Adobe, 访问时间为 十月 27, 2025, https://www.adobe.com/uk/acrobat/resources/document-files/pdf-types/pdf-a.html ↩︎ ↩︎ ↩︎ ↩︎

  43. Why All Legal Departments Should Be Using PDF Documents | Foxit, 访问时间为 十月 27, 2025, https://www.foxit.com/blog/why-all-legal-departments-should-be-using-pdf-documents/ ↩︎

  44. why use pdf for publication instead of something updatable? : r/AskAcademia - Reddit, 访问时间为 十月 27, 2025, https://www.reddit.com/r/AskAcademia/comments/11znm7a/why_use_pdf_for_publication_instead_of_something/ ↩︎

  45. Why do scientists tend to prefer PDF documents over HTML when reading scientific journals? And what would they want from the HTML to make it more compelling? - Quora, 访问时间为 十月 27, 2025, https://www.quora.com/Why-do-scientists-tend-to-prefer-PDF-documents-over-HTML-when-reading-scientific-journals-And-what-would-they-want-from-the-HTML-to-make-it-more-compelling ↩︎

  46. 访问时间为 十月 27, 2025, https://en.wikipedia.org/wiki/PDF/A#:~:text=PDF%2FA%20is%20an%20ISO,to%20font%20embedding)%20and%20encryption↩︎ ↩︎ ↩︎

  47. Ideal Long-Term Archiving with PDF/A - Apryse, 访问时间为 十月 27, 2025, https://apryse.com/blog/pdfa-long-term-archiving-apryse-sdk ↩︎

  48. PDF/A Family, PDF for Long-term Preservation - The Library of Congress, 访问时间为 十月 27, 2025, https://www.loc.gov/preservation/digital/formats/fdd/fdd000318.shtml ↩︎