无损转换 PDF 到 Word 是不可能的
某位老同学让我推荐一款能“无损转换 PDF 到 Word”的软件。给出推荐后,我尝试向他解释,这种“无损”其实是不可能的。他希望我将这些内容写成一篇科普文章。
当你搜索“转换 PDF 到 Word”,会找到许多提供此功能的软件。若是在社区中提问,还能收获许多样板式的营销回答:“无损,支持所有 PDF 文档,不会出现格式错乱…”,一切真的这么美好么?
查阅维基百科,我们了解到 PDF 是“包含固定布局的平面文档的完整描述”。什么是“固定布局”呢?在这里我们不讲解 PostScript,仅以伪代码表示。
PDF 中的一些文字:
在坐标 100, 110 是文字 "你好"
在坐标 100, 160 是文字 "世界"
而 Word 中的一些文字:
顶部页边距 110
左侧页边距 100
单倍行距
文字 "你好"
换行
文字 "世界"
看出区别了么?
PDF 使用绝对坐标,阅读器只是直白地把这一个个规范的“标记”渲染出来。这能尽量保证文档在不同平台上以相同形态显示。
Word 则使用“文本流”,段落由各种各样的属性,样式,被设置为我们所期望的模样。这使我们能够便利地修改文档内容和格式。
接下来我们以“PDF 到 Word 转换器”的角度观察。对于 PDF 中的这样两个文本块,对应的“Word 表示”有以下可能:
- 左侧页边距 100,单倍行距,两行文字中有一个空行。
- 左侧页边距 100,双倍行距,两行文字间没有空行。
- 左侧页边距 94,首行缩进 2 字符,单倍行距,两行文字中有一个空行。
- 甚至可能是两个独立的,悬浮的文本框!
- ... 排列组合,还有更多可能 ...
现在,“PDF 到 Word 转换器”要如何判定,哪一种选择才是正确的呢?
显然,将 Word 转换为 PDF 是相对稳定的,其过程中的信息是有损失的;而将 PDF 转换为 Word,则存在着太多不确定性,因为损失的信息不可能凭空产生。转换器所能做的仅仅是“按照惯例猜测”而已。
这就是为什么:无损转换 PDF 到 Word 是不可能的。