在Mac上使用Preview,为什么只保存一个PDF文件而不做任何更改会完全改变文件';什么内容?
我有一个3页的PDF文件在Mac上预览打开。如果我不对文件进行任何更改,点击cmd-s并保存文件,文件的二进制内容会发生很大变化。为什么会这样 由于我的流程,我可以看出情况是这样的:在Mac上使用Preview,为什么只保存一个PDF文件而不做任何更改会完全改变文件';什么内容?,pdf,diff,binaryfiles,preview,vimdiff,Pdf,Diff,Binaryfiles,Preview,Vimdiff,我有一个3页的PDF文件在Mac上预览打开。如果我不对文件进行任何更改,点击cmd-s并保存文件,文件的二进制内容会发生很大变化。为什么会这样 由于我的流程,我可以看出情况是这样的: 复制一份pdf(cp a.pdf b.pdf) vimdiff a.pdf b.pdf(无更改,内容完全相同) 在预览中打开.pdf(不进行编辑) vimdiff a.pdf b.pdf(无更改,内容完全相同) 点击cmd-s(保存pdf) vimdiff a.pdf b.pdf(大量更改,远远超出了pdf的元数据
有人能解释一下为什么PDF会被“重新写入”,即使没有任何更改?我没有预览应用程序的源代码,所以我不能确定。我可以猜测,他们不仅仅是在保存加载的相同数据,而是在重新构建一个“等效”的PDF文件
此外,当一个PDF文件被“重新创建”时,其中的一些项目将始终不同(唯一ID、上次日期/时间修改等)。事实上,Preview会在首次保存任何非Quartz应用程序最初创建的任何PDF文件时重新写入该文件 我靠调试PDF来谋生 现在,我养成了一个习惯,当我发现所提供的示例PDF被Quartz触动时,我从不向客户提出如何修复任何(即使是最简单的)报告问题的建议(幸运的是,苹果公司通过使用Mac OS X 10.7.4 Quartz PDFContext或类似软件更新
/Producer
元数据密钥,承认了自己的参与):
- 因为我不知道此PDF是否是显示所述问题的原始PDF,或者客户是否只是试图通过MacBook发送原始问题PDF,并在操作其邮件应用程序时无意中重新保存+重新写入PDF。
- 因此,我总是需要首先与苹果公司的客户建立一个程序,以确保我能够分析显示特定错误或问题的原始PDF文件,而不是那些被Quartz/Preview破坏的文件。在我发现pro之前,我已经花了相当多的时间“分析”错误的文件大约一年前
/ModDate
元数据密钥被更新(除非您在Mac上使用的是新版本的Quartz)…但除非您仔细查看相关PDF,否则您永远不会知道
更新(包含一些附加信息) 顺便说一句,对我来说,对
[cmd]+[s]
的简单点击还没有改变PDF。但我在Mac OS XLion 10.7.4
,带有Preview.appVersion 552(719.23)
。在Lion上,更改是通过以新名称保存文件(重复=>保存…)触发的
k00k似乎是在Mac OS X上的山狮10.8.1版,带有Preview.appVersion 6.00(765)
。对他来说,只要点击一下[cmd]+[s]
就足以触发更改
(我并不是说苹果对预览PDF文件所做的更改一定是不好的。在相当多的情况下,这可能会无声地“修复”损坏的文件,并可能被认为是“用户友好”的行为。--我的意思是有更改(无论是好的还是坏的都无关紧要)这超出了元数据将新的
/ModDate
值标记到文件中的范围,并且会使PDF问题的疑难解答变得非常痛苦……)奇怪的是,如果我一直按cmd-s,文件内容每次都会更改。因此,这不像Preview第一次重新编写文件,因为它希望以Preview批准的方式保存。完全了解更改的元内容。这很容易规范化/更新到您喜欢的任何内容,因此文档都是一样的。However,这并不是唯一更新的内容。munged的整体字节顺序还有很多。yms,你似乎是PDF的专家。如果你能帮助Preview.app让大家对这个问题有一个大致的认识,我会很高兴。@KurtPfeifle我想知道你是真的想说这是恭维还是讽刺:)@KurtPfeifle我会尽力按照你的建议去做。这对于每个使用苹果软件或苹果操作系统的人来说都是一个非常重要的话题!应该让更多的人意识到这种行为,因为它的结果并不总是预期的。你应该改变你的标题,让它发出一个巨大的警告,而不是一个“无辜的问题”:-)顺便问一下:这是哪个版本的Mac OS X?哪个版本的Preview.app?OS 10.8.1-预览版本:6.0(765)