我已使用此example(FirstPDF)删除“new Date()”句子生成了两个PDF。使用Java或iText生成两个完全相同的PDF
他们看起来是平等的,但是当他们计算一个md5散列时,他们真的不一样。
我检查过他们,他们注册了一个creationDate
,即使句子document.addCreationDate()
没有被包含在源代码中。
问题很简单:是否有可能以任何方式使用任何API生成两个完全相同的字节到字节的PDF?
我已使用此example(FirstPDF)删除“new Date()”句子生成了两个PDF。使用Java或iText生成两个完全相同的PDF
他们看起来是平等的,但是当他们计算一个md5散列时,他们真的不一样。
我检查过他们,他们注册了一个creationDate
,即使句子document.addCreationDate()
没有被包含在源代码中。
问题很简单:是否有可能以任何方式使用任何API生成两个完全相同的字节到字节的PDF?
如果您需要两个完全相同的文件给你同样的MD5哈希值,为什么不复制一个已经已经创建一个?
如果需要通过两个独立的API调用创建两个相同的文件,那么你可以使用任何 PDF创造API,它是值得的钱:
如上所述here,文件不等于,因为它们具有不同的标识符(具有两个文件,在不同的时刻创建的,应该有不同的ID作为在PDF说明书中所定义)。
文件标识符通常是基于日期,路径名称,文件大小,PDF文件内容的一部分(例如信息字典中的条目)创建的散列。
。
文件标识符在文件加密中涉及(和强制)。因此,具有不同文件标识符的加密PDF文件将具有完全不同的流。
通过设计,您永远不能使用相同的代码创建两个相同的PDF。
为什么你需要生成两个相同的文件?生成一个,放在文件系统上,然后复制一个文件。 –