我有很多重要的 PDF 文件。我修改它们的唯一方法是添加/删除注释。有没有一种有效的方法来对此类文件进行版本控制。我可以使用 SVN/Git 等标准工具。我听说 SVN 只存储增量,即使是二进制文件也是如此。在 SVN/GIT 的情况下,如果我所做的只是更改 PDF 文件中的注释,增量会很大吗?我猜它们不会很大,但我不确定注释是如何存储在 PDF 文件中的,以及增量算法有多智能。
答案1
在一个活跃的项目中,我们使用 git 进行分发和版本控制。有些文件是 PDF,它工作得很好。正如人们所说,没有办法进行增量。
但是,有一种可能适用于增量的方法,即导出注释(以 FDF 形式输出),然后使用这些导出文件进行版本控制。如果注释不是太大,FDF 可能是纯文本文件;但是,您必须运行测试。
答案2
您可以使用以下方式解压缩 PDF多种工具(qpdf、pdftk、mutool、cpdf)。例如:
pdftk original.pdf output uncompressed.pdf uncompress
这应该会为您提供 PDF 格式,您可以在其中以纯文本形式查看和区分注释。未压缩的文件通常主要由 ASCII 字符组成,但它可能仍包含二进制数据。您必须测试它如何与您选择的版本控制软件配合使用,以及它是否能很好地处理“嵌入”的二进制数据。
问题是,当您修改注释(我假设使用 GUI 编辑器)并保存文件并解压缩时会发生什么。如果您很幸运,除了注释之外,文件将大致相同,但这并不能保证。您必须明智地选择软件组合。
答案3
我不知道 PDF 文件有任何原生版本控制(我的 Google 搜索也没有)。PDF 文件(根据维基百科)是二进制的。增量存储仅适用于文本文件(如源代码文件和自述文件)。
我有使用 SVN 和 Git 的经验。我建议使用 Git,因为它具有出色的压缩功能,并且是一种分布式版本控制系统。Subversion 是一种集中式版本控制系统,这意味着您需要一台服务器才能运行它。您可以在计算机上安装 SVN 服务器软件,但这可能不值得。分布式版本控制系统通过本地存储库工作(即:不需要服务器)。