我们的网络应用程序提供下载 pdf 的功能。
当用户单击下载链接时,我们会在新选项卡中打开 pdf。
我的 firefox 使用 pdfjs 作为 pdf 查看器,我可以通过它的界面保存 pdf。
Firefox 19 中的一切都很好,但版本 24 下载的文件看起来像已损坏(它显示该文件,但无法正确下载)。
我注意到文件的结果大小是最接近 2 的幂,例如,如果我的原始 pdf 大小是 97kb,那么在通过 Firefox 的 pdfjs 下载它后,它的大小变成 128kb,我的桌面 pdf 查看器(如 acrobat)无法打开它。
我在我们应用程序的同一版本上对其进行了测试。
更新
演示 pdf 文件- 通过 linux google chrome 查看器和 linux firefox 21 (pdfjs) 下载一切都很好,但 linux firefox 23.0.1 也有同样的问题
pdfjs 或我们的服务器有问题吗?
更新#2
我查看了损坏和未损坏文件的二进制内容:
$ git diff not-broken.dump broken.dump diff --git a/not-broken.dump b/broken.dump 索引 3621089..5de337c 100644 --- a/not-broken.dump +++ b/broken.dump @@ -336,5 +336,7 @@ 000014f0 b8 d0 3d 76 85 f8 76 9d e6 50 74 df e7 a7 bd b0 |..=v..v..Pt.....| 00001500 00 f1 6e 05 63 0a 65 6e 64 73 74 72 65 61 6d 0a |..nendstream.| 00001510 65 6e 64 6f 62 6a 0a 73 74 61 72 74 78 72 65 66 |endobj.startxref| -00001520 0a 35 32 31 33 0a 25 25 45 4f 46 0a |.5213.%%EOF.| -0000152c +00001520 0a 35 32 31 33 0a 25 25 45 4f 46 0a 00 00 00 00 |.5213.%%EOF.....| +00001530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |......| +* +00010000