gpt4 book ai didi

pdf - 使输出 pdf 文件二进制相同

转载 作者:行者123 更新时间:2023-12-04 14:38:18 26 4
gpt4 key购买 nike

我正在使用 Matplotlib 生成一大批绘图(数千个)。我会经常调整生成绘图的代码中的小东西,但这些更改通常只会影响少数绘图。

当我将新图推送到公共(public)存储库时,我想使用类似 rsyncdiff 的东西来识别哪些图实际上发生了变化。不幸的是,运行 diff new_plot.pdf old_plot.pdf 总是 将文件识别为不同的,即使绘图脚本没有发生变化。

当我输出到 .png 时,文件是相同的。当我输出到 .eps 时,输出几乎相同,但运行 diff 显示有几行已被交换。我怀疑造成差异的原因有两个:

  1. pdf 存储元数据,包括时间戳。
  2. 有些矢量图形即使没有相同的描述也可能看起来相同(即可以从右到左或从左到右绘制一条线)。我希望 matplotlib 是确定性的,但它在 .eps 实例中做的事情显然略有不同,所以我猜不是。

有没有什么方法可以关闭 .pdf 元数据,或者强制从 matplotlib 中使用更具确定性的绘图方法,或者将文件提供给将它们视为相同的 diff 工具?

最佳答案

example包含如何使用 PdfPages 设置创建和修改日期.我已经尝试了代码并执行了 diff,我的 pdf 数字之间没有任何差异。

PS:最后两行会影响您文件中的差异,因此请尝试为它们附加您想要的固定值:

d['CreationDate'] = datetime.datetime(2009, 11, 13)
d['ModDate'] = datetime.datetime.today()

d['CreationDate'] = datetime.datetime(2014, 9, 6)
d['ModDate'] = datetime.datetime(2014, 9, 6)

关于pdf - 使输出 pdf 文件二进制相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25319483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com