无需上传, 100% 本地处理, 无需账户

文章

为什么 PDF 这么难编辑

打开一份 PDF,期望能像在文字处理器里那样改动一句话,是常见的挫败感来源。Word 文档存储的是段落、样式和重排规则;PDF 存储的则是一个已经排好版的成品页面。下面是 PDF 内部到底存了什么、为什么这让真正的文字编辑变得困难,以及我们的工具能做到什么、又做不到什么。

PDF 描述的是一个页面,而不是一段文字

PDF(Portable Document Format,可移植文档格式),也就是标准化为 ISO 32000 的格式,设计初衷是让页面在任何设备和打印机上看起来都完全一致:它存储的是一串底层绘图指令组成的内容流,比如“在 x, y 坐标处放置这个字形”,而不是可重排的文字段落。文字处理器的文件格式,把文字保存为一串带有样式和排版规则的字符流;而 PDF 保存的是已经排好版的成品本身。这正是它能在任何地方都渲染成一模一样效果的全部原因,也是移动一句话不能算作简单文字编辑的全部原因。

PDF 内容流示意图:页面上各自独立定位的字形,与文字处理器中流动的字符段落形成对比

为什么一句话不会自己移动

在可重排文档中,把一句话拉长会自动把段落其余部分往下推。PDF 没有这样的规则:每一行文字都是一个单独定位的对象,所以插入一个单词,就意味着要重新计算并重新定位它后面的每一个字形,包括这一行、往往还有下面的每一行,以避免文字重叠。那些能让你像编辑普通文档一样编辑 PDF 的软件,其实是在幕后悄悄重建这套排版流程,这也是为什么结果有时会以原生文字处理器绝不会出现的方式,改变间距、字体或换行。

我们的 PDF 编辑器实际做的是什么

我们的 PDF 编辑器会在现有页面之上添加文本框、图片、高亮和白色遮盖矩形,位置由你自己放置;它不会触碰或重排底层原始的内容流。这涵盖了常见的实际场景:填写表单上的空白、添加图章或批注、打印前遮住某一行。它不会像文字处理器那样把 PDF 变回可编辑的段落,因为那需要重建整个文档的结构,而不只是在上面画点东西。

并排示意图:我们的 PDF 编辑器在现有页面上叠加新元素,对比完整重排重建为可编辑文档所需要做的事

当你需要的其实是文字,而不是排版本身

如果目的是重新使用其中的文字,那就把它复制出来,而不是原地编辑页面:我们的 PDF 转文本工具会提取底层的字符对象,或者对没有字符对象的扫描页面运行 OCR,得到一份可以粘贴进任何编辑器、从头重新排版的纯文本。这完全绕开了重排的问题,因为你处理的是文字本身,而不是它们被绘制在上面的那个固定页面。

把 PDF 转换回 Word 文档

把 PDF 变成一份完全可编辑、可重排的 Word 文件,是一个完全不同、也难得多的问题:它需要从只记录了定位字形的页面中,推断出段落边界、样式和表格结构,而这正是服务器端工具所做的那种繁重且不完美的重建工作。对于一个围绕“从不上传文件”构建的纯浏览器网站来说,这确实超出了它的能力范围:我们不做这件事,任何声称能完美实现 PDF 转可编辑 Word 的工具,背后都在某个环节做着有损的猜测。

本文涉及的工具

常见问题

我能免费编辑 PDF 的实际文字,而不上传它吗?

你可以用我们的 PDF 编辑器,完全在浏览器中,在页面上添加新的文字、图片和遮盖方块。而像在文字处理器里那样原地修改原始文字,需要把文档重建为可重排文件,这是一个和叠加元素完全不同、也重得多的操作。

为什么从 PDF 中复制文字,有时会得到一堆混乱的内容?

PDF 中的文字对象是各自独立定位的,不一定按阅读顺序存储。举例来说,一个分栏排版的页面,其底层对象的顺序可能是按整个页面从上到下排列的,而不是按栏逐列排列的,所以直接复制粘贴可能会把互不相关的行交错混在一起。

有没有真正能把 PDF 内容转换成可编辑 Word 文件的方法?

专门的转换服务会尝试通过推断页面布局中的段落和样式来做到这一点,效果好坏取决于原始文档有多复杂。这种重建不是一个客户端、无需上传的工具能够无损完成的事情,这也是为什么它不在本站提供的功能范围内;用 pdf-to-text 提取文字,再自己重新排版,是更诚实的替代方案。

来源