Others

为什么每次编辑和保存 PDF 文件时,即使只删除内容,文件大小也会增加

您打开一个 PDF,删除几页,删除一些图像,然后保存。文件应该更小。您刚刚删除了内容。但当你检查文件大小时,它已经变大了。编辑前 2 兆字节的文档,删除后现在为 2.3 兆字节。这种违反直觉的行为不是错误。这是 PDF 格式管理增量更改方式的结果,几乎每个 PDF 编辑器都会发生这种情况,包括最著名的桌面应用程序。了解原因不仅可以解释文件不断增长的奥秘,还可以解释如何防止文档发生这种情况。

Why Does a PDF File Size Increase Every Time You Edit and Save It Even When Only Removing Content

PDF 编辑器如何保存更改:增量更新与完全重写

选择比你想象的更重要。

当您编辑和保存 PDF 时,应用程序有两种选择将更改写入磁盘。第一种方法称为增量保存,将修改的对象附加到现有文件的末尾,而不更改原始内容。原始页面、图像和文本原样保留在文件中。新对象通过称为交叉引用表的机制引用并覆盖旧对象。第二种方法称为完全重写或另存为,将整个文档读入内存,应用所有更改,并从头开始写入一个全新的文件,丢弃不再引用的任何数据。

出于性能原因,大多数 PDF 编辑器默认采用增量保存。将几千字节的更改附加到文件末尾只需要几分之一秒的时间。从头开始重写 50 MB 文件需要的时间明显更长,尤其是在机械硬盘驱动器或网络共享上。增量保存的用户体验更好:保存几乎立即发生,并且由于原始数据从未被修改,因此中断写入导致损坏的风险较低。代价是删除的内容实际上并没有被删除。它在交叉引用表中被标记为未使用,但实际上仍然存在于文件中(Adobe,“PDF 参考:增量更新和文档结构”,2023)。

WukongPDF

尝试编辑 PDF

无需安装。直接在您的浏览器中工作。

立即开始 →

多个编辑会话中孤立数据的积累

每次打开 PDF、进行更改并执行增量保存时,都会在文件末尾添加新的修改层。经过十次编辑会话后,该文件包含原始内容加上十层更改。其中一些变化可能是矛盾的。在会话三中添加并在会话七中删除的图像会占用文件两次空间:一次用于添加,一次用于删除指令。删除操作不会恢复添加操作所使用的空间。它仅告诉 PDF 阅读器在渲染文档时忽略该图像。

即使可见内容正在缩小,孤立数据的积累也会随着每次保存而增大文件。从 PDF 中删除大图像并增量保存会从渲染输出中删除该图像,但会添加几千字节的元数据来记录删除操作。图像数据本身保留在文件中,未引用但消耗空间。经过许多编辑周期,最初为 1 兆字节的文档可能会增长到 3 或 4 兆字节,其中一半大小由不再对可见文档产生影响的数据组成。

内容删除后仍然存在的隐藏数据类型

除了明显的孤立图像和页面之外,增量保存期间还会积累几种类型的隐藏数据。嵌入字体是一个主要贡献者。当您编辑 PDF 中的文本并更改字体时,原始字体子集通常会保留在文件中,即使没有可见文本仍在使用它。使用三种不同字体重新格式化三次的文档可能包含所有三个字体子集,每个子集消耗数百千字节。 PDF 阅读器仅使用最近引用的子集,但旧的子集仍保留在文件数据中。

元数据和文档属性遵循相同的模式。每次增量保存都可以更新修改日期并向文档的元数据流添加新条目。较旧的元数据条目不会被删除。页面标签、内部链接的命名目的地和书签结构等文档开销元素也可能在多个保存中累积重复或过时的条目。累积效应是,经过多次编辑和保存的 PDF 中隐藏数据的负担越来越重,而这些数据在当前版本的文档中毫无用处。

如何在编辑后恢复文件大小

累积孤立数据的解决方案是对 PDF 执行完全重写,大多数应用程序将其称为“另存为”、“优化”或“减小文件大小”。完全重写读取文档的当前状态,包括所有增量更新,解析最终可见内容,并仅将该内容写入新文件。孤立的图像、未使用的字体、过时的元数据和过时的交叉引用条目都将被丢弃,因为它们没有被最终文档状态引用。生成的文件通常比原始文件小,尤其是在编辑过程中删除了重要内容的情况下。

WukongPDF 的编辑 PDF 工具可高效处理您的文档,并使用PDF 文件大小 压缩功能进行后续编辑,可在一次操作中去除累积的孤立数据。编辑和保存的优化组合可确保您与其他人共享的文件仅包含显示文档当前版本所需的数据。对于经常编辑的文档,在共享、存档或上传之前将完全重写作为最终保存例程的一部分,可以防止文件大小在整个文档生命周期中累积。

控制 PDF 大小的预防措施

如果您经常编辑 PDF,例如每周报告模板或协作审阅的文档,请安排定期完全重写,而不是完全依赖增量保存。每月一次或每十次编辑会话后,使用“另存为”或等效的优化功能来生成干净的副本。保留原始版本,直到验证优化副本正确打开并按预期显示所有内容,然后用优化版本替换原始版本。这种做法使文件大小易于管理,而不会牺牲活动编辑会话期间快速增量保存的便利性。

对于将长期存档的文档,请执行完全重写作为存档前的最后一步。存档的文档在再次打开之前可能会保存数年,而在主动编辑期间方便的增量更新结构在长期存储期间会成为一种负担。内部结构简单的干净文件不太可能遇到未来 PDF 阅读器的兼容性问题,并且存储和备份的规模较小。归档前保存优化副本所需的几秒钟对于文档的长期健康来说是一项值得的投资。

识别文件大小的增长何时表明存在更深层次的问题

虽然编辑后 PDF 文件大小增加的大多数情况是由增量保存和孤立数据解释的,但在一次小编辑后急剧增大的文件可能表明存在不同的问题。添加一句话文本注释不应使文件大小增加数兆字节。如果您看到这种模式,则 PDF 可能包含结构损坏,导致保存操作无意中复制文档的大部分内容。在这些情况下,使用“另存为”功能进行完全重写不仅是清理步骤,而且是必要的修复。如果优化后的文件明显较小,则原始文件已积累了大量隐藏数据,而这些数据永远不会通过正常的增量保存来回收。

专业工作中经常使用 PDF 的用户应该了解其典型文档的合理文件大小是多少。两页纯文本 PDF 的大小应低于 100 KB。包含嵌入图像的 20 页文档可能有 2 到 5 兆字节。当文件的内容类型明显超出这些标准时,就值得进行调查。该文件可能包含多年增量保存的孤立数据。一次PDF优化通常可以将此类文件减少百分之五十或更多,恢复存储空间并提高打开、共享或上传文件时的性能。

文件大小不断增长的现象给我们上了一课,让我们了解 PDF 的幕后工作原理。看似简单的文档格式实际上是一个复杂的容器,每次编辑都可以积累隐藏的历史记录。了解这一点有助于解释其他看似难以解释的 PDF 行为:为什么显示四个页面的 PDF 可以包含六个页面的数据,为什么今天修改的文件可能显示三年前的创建日期,以及为什么两个看起来相同的 PDF 可以具有截然不同的文件大小。增量保存机制不是缺陷。这是一种设计权衡,优先考虑编辑速度和数据安全而不是存储效率,并且知道这种权衡的存在可以让您通过定期完全重写来有意地管理它,从而使您的文档保持简洁、干净并发挥最佳性能。

下次当您从 PDF 中删除内容并观察文件大小增加而不是减少时,您就会确切地知道发生了什么。您编辑的孤立数据已附加到文件中,完全重写会将其清除。曾经令人困惑的技术谜题变成了日常维护任务。

WukongPDF

尝试编辑 PDF

无需安装。直接在您的浏览器中工作。

立即开始 →