3

CF9.0.1 で CFDOCUMENT を使用して 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 に同じ MD5 ハッシュ (ビットの類似性) を使用して同じ PDF を強制的に生成させる方法を知っている人はいますか?

HxD Hex File Compare を実行したところ、ファイルが 3 つのセクションで異なることがわかりました。

  • フォント名 例: 62176/FontName/OJSSWJ+TimesNewRomanPS (OJSSWJ はランダムです)
  • タイムスタンプ /CreationDate(D:20110927152929+08'00')
  • 最後にある種のキー: <]/Info 12 0 R/Size 13>>

事前にご協力いただきありがとうございます。

4

1 に答える 1

4

それらは決して同じではありません。

タイムスタンプ/CreationDate(D:20110927152929 + 08'00')

CreationDateは、作成されたときのタイムスタンプであるため、毎回同じ秒で作成しない限り、同じになることはありません。

PDFを変更し、このビットを削除または変更できる場合があります。

または、別の方法を使用してpdfを作成する必要があるかどうかを判断し、md5で作成して結果を比較すると、処理能力の無駄に思えます。

于 2011-09-27T10:12:30.907 に答える