2011-09-27 4 views
3

CFDOCUMENT를 사용하여 CF9.0.1에서 PDF를 만듭니다. 그러나 CFDOCUMENT를 사용하여 새 PDF를 생성 할 때마다 동일한 입력으로 MD5 해시가 다른 것처럼 보입니다.CFDOCUMENT는 동일한 입력에 대해 다른 MD5 해시를 사용하여 PDF를 만듭니다.

테스트 코드는 간단하다 : 두 PDF 정확히 같은 보이지만 생산

<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 파일의 재생성을 무시하는 파일이 동일한 경우 사용자 요구 사항이 있습니다. 동일한 입력을 받으면 동일한 MD5 해시 (비트 유사성)를 사용하여 동일한 PDF를 생성하는 방법을 알고있는 사람이 있습니까?

은 내가 HxD 진수 파일 비교 실행하고 파일이 세 부분에서 차이가 있음을 발견 : 예를 들어,

  • 글꼴 이름 합니다 (OJSSWJ는 랜덤) 62,176/폰트 명/OJSSWJ + TimesNewRomanPS
  • 소인 /에서 CreationDate (D : 20,110,927,152,929 + 08'00 ') 끝에 키
  • 일종 : <]/정보 12 0 R/사이즈 13 >>

미리 도움을 청하십시오!

답변

4

그들은 결코 같지 않을 것입니다.

소인 /에서 CreationDate (D : 20,110,927,152,929 + 08'00 ')

에서 CreationDate는 이와 같은 초마다 그것을 만들지 않으면, 그것은 늘 동일하게,이 생성 될 때의 타임 스탬프이며 .

pdf를 수정하고이 비트를 제거하거나 수정할 수 있습니다.

또는 다른 방법을 사용하여 pdf를 만들어야하는지 확인하고 md5로 작성하여 결과를 처리 능력의 낭비처럼 보입니다.

+0

의견을 보내 주셔서 감사합니다.하지만 실제로 PDF에서 동일한 HTML 콘텐츠 (예 : 고정 된 작성 날짜 지정 가능)에서 동일한 PDF를 생성하도록 할 수있는 방법이 있기를 바랍니다. 필자의 예는 요구 사항을 크게 단순화하는 것입니다. 이는 파일이 여러 당사자를 통해 전송되는 즉시 생성되므로 발생하는 파일을 추적하여 중복 파일이 아닌지 확인해야하기 때문입니다. – andrwo

+0

파일이 수신되면 변경되는 PDF 부분을 제거한 다음 나머지 부분을 MD5로 복사하여 중복 된 부분이 없는지 확인합니다. –

관련 문제