我正在使用第三方软件从html文档呈现PDF。我创建了一个小测试项目,并使用的OnClick
事件,我能够从目录中读取html文档并将其呈现为PDF格式,没有任何问题。HttpContext.Current.Response.AddHeader()未设置内容类型标题
的响应创建如下:
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("Content-Type", "application/pdf");
HttpContext.Current.Response.AddHeader("Content-Disposition",
String.Format("{0}; filename=Test.pdf;", "inline"));
HttpContext.Current.Response.BinaryWrite(pdfBuffer);
HttpContext.Current.ApplicationInstance.CompleteRequest();
当我看到Chrome的响应,我可以看到,内容类型被设置正确:
内容处置:内联;文件名= HtmlToPdf.pdf;
的Content-Length:101482
内容类型:应用程序/ PDF
我已经试过以上转移到我的当前项目。唯一的区别是,而不是一个我在DevExpress网格视图内使用自定义按钮。我最初处理回调面板中的自定义按钮点击,但未设置Content-Type。在Chrome中查看响应证明了这一点:
Content-Disposition:inline;文件名= 5.pdf;
内容编码:gzip
的Content-Length:149015
内容类型:文本/无格式; charset = utf-8
我也试过使用gvDocuments.CustomButtonCallback += new ASPxGridViewCustomButtonCallbackEventHandler(gvDocuments_CustomButtonCallback);
事件,但Content-Type仍未设置。
任何人有任何想法,为什么我不能在上面的场景中设置Content-Type?
PDF看起来还好吗?看起来,IIS管道中的某些内容正在应用压缩,您是否尝试禁用该功能? –
它甚至不呈现。响应是200 OK,但Content-Type是文本/纯文本。我正在本地进行调试,因此使用VS Development Server。是否有任何理由不应该在回调/网格视图自定义按钮点击事件中设置? – MattSull