CFDOCUMENT为相同的输入创建具有不同MD5哈希值的PDF



我使用CFDOCUMENT在CF9.0.1中创建PDF。然而,每次使用相同的输入,我使用CFDOCUMENT生成一个新的PDF, MD5哈希似乎是不同的。

测试代码很简单:

<cfdocument name=FileData1 format="PDF" localurl="yes" pagetype="A4"><h3>I am happy!</h3></cfdocument>
<cfdocument name=FileData2 format="PDF" localurl="yes" pagetype="A4"><h3>I am happy!</h3></cfdocument>
<cffile ACTION="write" FILE="C:happy1.pdf" OUTPUT=#FileData1# ADDNEWLINE=NO NAMECONFLICT="Override">
<cffile ACTION="write" FILE="C:happy2.pdf" OUTPUT=#FileData2# ADDNEWLINE=NO NAMECONFLICT="Override">

生成的两个文件具有不同的MD5文件哈希,尽管两个PDF看起来完全相同。我有一个用户需求,如果文件是相同的,忽略PDF的再生,所以有人知道如何强制CF9生成相同的PDF与相同的MD5哈希(位相似度),如果给定相同的输入?

我运行了HxD十六进制文件比较,发现文件在三个部分不同:

  • 字体名称,例如:62176/FontName/OJSSWJ+TimesNewRomanPS (OJSSWJ是随机的)
  • 时间戳/创建日期(D:20110927152929+08'00')
  • 结尾的某种键:<]/Info 12 0 R/Size 13>>

提前感谢您的帮助!

它们永远不会是一样的。

时间戳/createdate (D:20110927152929+08'00')

createdate是创建时间戳,因此除非每次都在同一秒创建它,否则它不会相同。

你可以修改pdf文件,删除或修改这个位。

或者使用不同的方法来确定是否应该创建pdf,创建它来md5比较结果似乎是浪费处理能力。

最新更新