我的问题是在 Acrobat Reader 中打开的 pdf,它是在 ZF2 上使用 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
提前感谢!
只有文件的前 7036 个字节构成您的实际 pdf。之后的所有内容都是一些HTML代码。因此,您应该检查您的pdf创建代码,它似乎包含一些HTML创建代码(复制粘贴的剩余代码?框架也添加?
Adobe Reader 显示这些领先的 7KB,并最终提供将它们保存为修复文件,就像 Reader 喜欢的那样编码(将这 7KB 分解为 40KB)。
PS:我刚刚看到在HTML代码之后还有大约80KB的空字节。
看起来您收到了一个大小为0x80000(= 524288十进制)字节的整字节缓冲区,其中包含您的 PDF、一些 HTML 和一些尚未使用的空间。
问题实际上还没有完全解决:)
这个问题现在变得更加奇怪了。 在Chrome上,一切都很完美,创建的PDF是可靠的,没有额外的数据。 而在 Firefox 中,PDF 的输出很好,保存文件工作正常,使用 Acrobat Fine 打开文件,关闭会在提示保存时产生相同的结果,而无需进行任何更改。 显然,文件末尾仍然存在空字节部分。 使用"下载为文件"时选项在 TCPDF 输出中结果是正确的,EOF 后没有其他数据。仅当 PDF 在浏览器 (Firefox) 中输出并从那里保存时才会发生。可能是火狐的问题吗?可以检查文件中是否存在这种多余的数据并以某种方式将其删除吗?