2013-09-26 2 views
2

내 문제는 Acrobat Reader에서 PDF를 열어 ZF2에 TCPDF로 만든 경우입니다.Acrobat Reader가 닫을 때 pdf 파일을 저장하는 중 (TCPDF로 생성)

파일이 잘 작성되었지만 (파일 크기는 약 500kb 제외) 내용은 좋지만 파일을 닫으려고하면 변경 내용은 저장되지 않지만 Acrobat에서는 변경 사항을 저장할지 묻는 메시지를 표시합니다. 파일을 저장하고 덮어 쓰면 파일 크기가 약 40kb로 떨어집니다. 따라서 파일 크기가 10 배 이상 줄어들지 만 내용에 눈에 띄는 변화는 없습니다.

내가 어떤 관련 대답에 도착 가장 가까운이었다 여기 스레드 http://forums.planetpdf.com/save-file-prompt-when-closing_topic36.html

나는 문제가 관련되어 이해로는 "외부 참조 테이블 형식이 잘못되었습니다"하지만, PDF 내 경험의 뿌리를 이해하는 것만으로는 충분하지 않습니다 내 문제. 샘플 파일은 여기에 있습니다 https://dl.dropboxusercontent.com/u/29072870/test_pdf.pdf

미리 감사드립니다!

+0

파일 크기를 변경하기 전이나 변경 후에 포함 된 파일을 확인했습니다. 내 컴퓨터에서 파일 크기가 524kb 인 경우 –

+0

WinXP-32bit에서 Win7-64bit로 변경했을 때 같은 문제가 발생했습니다. (변경 사항을 저장 하시겠습니까? 이전에 닫히기 전까지)하지만 아마도 TCPDF 코드에 너무 많은 코드를 추가 했었고 이전 TCPDF 파일은 작동했지만 새로운 것은 아니 었습니다. 잘하면 내 코딩 버그를 발견 할 것입니다. (mysqlPHP no Zend 사용) –

답변

2

파일의 첫 번째 7036 바이트 만 실제 PDF를 구성합니다. 이후 모든 것은 HTML 코드입니다. 따라서, 당신은 귀하의 PDF 생성 코드를 확인해야합니다, 복사 (& 붙여 넣기에서 남은? 프레임 워크에 의해 추가 된), 일부 HTML 생성 코드를 포함하는 것 같다.

Adobe Reader는 이러한 주요 7KB를 표시하고 결국 Reader가 선호하는 인코딩 된 파일로 저장하도록 제안합니다 (이 7KB를 40KB로 분해).

추신 : 나는 HTML 코드 다음에 약 80KB의 null 바이트가 있다는 것을 보았습니다.

PDF, 일부 HTML 및 아직 사용하지 않은 공간이 포함 된 전체 바이트 버퍼 0x80000 (십진수 = 524288) 바이트를받은 것 같습니다.

+0

감사합니다! 물론 의자와 키보드 사이에 문제가있었습니다 ... 그리고 pdf에 대한 나의 미숙 함. 나는 pdf를 출력 한 후에 프로세스를 종료하지 않으므로 zend가 계속 진행되어 초과 된 데이터가 pdf의 끝에 삽입되었습니다. – Kristo

0

문제는 사실은 꽤 아직 해결되지 :)

문제가 훨씬 더 이상한 얻었다. 크롬에 모든 것은 완벽하게 작동합니다. pdf는 견고하고 추가 데이터는 없습니다. 파이어 폭스에서는 pdf의 출력이 괜찮 으면서 파일이 잘 작동하고, Acrobat을 사용하여 파일을 열면 괜찮습니다. 변경하지 않고 저장하면 프롬프트에서 같은 결과가 나타납니다. 분명히 여전히 파일 끝에 null 바이트의 부분이 있습니다. TCPDF 출력에서 ​​"파일로 다운로드"옵션을 사용할 때 결과는 정확하며 EOF 이후 추가 데이터는 없습니다. pdf가 브라우저 (firefox)에서 출력되고 거기에서 저장 될 때만 발생합니다. 파이어 폭스의 문제 일 수도 있니? 이런 종류의 초과 데이터를 파일에서 확인하고 어떻게 든 제거 할 수 있습니까?

+0

코드를 입력해야 할 수도 있습니다. 그런 다음 환경을 아는 사람들이 더 도움이 될 수 있습니다. 필자는 pdfs 내부에서만 자신 만의 길을 알고 있으며, 따라서 더 이상 거의 도움이되지 않습니다. – mkl

관련 문제