在MVC控制器功能中,我有以下代码:
SpreadSheetGear
Firefox可以接收PDF响应并正确显示。 IE 10中的Adobe Reader XI插件抱怨"文件不以'%PDF'开头。本地\ EWH([b~rkqj"和Chrome抱怨格式不正确。当我通过Firefox保存PDF时,文件大小约为2.6 MB,但上面注释掉的代码将pdf保存到aaaa.pdf大小约为400k。文件可以在所有浏览器和PDF阅读器中打开并正确呈现。
显然,某种程度上,ASP.NET或IIS 7.5 / 8已经膨胀/污染了400KB,这是Firefox可以容忍的其他内容,而不是其他内容。通过VS调试器,我很确定函数返回时字节/流大约为400 KB,但不知何故,当响应离开IIS时,响应会变大几倍。
我使用的是MVC5和.NET 4.5,主机是Windows 7上的IIS EXpress,IIS 7.5,IIS8和带有所有最新补丁的Server 2012.
答案 0 :(得分:1)
这是一个非常常见的问题。
在将pdf内容写入响应之前,您应该使用Response.Clear()清除响应,
然后应该调用Response.End()。
这只会将pdf内容发送给客户端。