繁体   English   中英

ITextSharp-Google Chrome保存按钮将PDF另存为.ASPX页

[英]ITextSharp - Google Chrome Save Button Saves PDF as .ASPX page

我目前正在使用ITextSharp使用.Net 3.5 ASPX页面创建PDF。 一切正常。.唯一的问题是在chrome(Version 42.0.2311.135)中,当我单击“保存”按钮或右键单击并说“保存”,因为它试图另存为.aspx页。 使用Firefox或Internet Explorer时,我没有遇到这些问题。 我尝试禁用chrome PDF查看器,它只是自动将文件另存为aspx文件。 我在下面包括了我的代码,该代码是通过单击按钮触发的。 我假设这是我处理响应的方式? 有任何想法吗?

在此处输入图片说明

iTextSharp.text.Document d = new iTextSharp.text.Document(PageSize.A4, 20, 20, 20, 20);

using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
{

 w = PdfWriter.GetInstance(d, stream);

 //add stuff to itext document

 d.Close();

 byte[] b = stream.ToArray();
 stream.Close();


 Response.Clear();
 Response.ContentType = "application/pdf";
 Response.BinaryWrite(b);
 HttpContext.Current.ApplicationInstance.CompleteRequest();

}

更新:希望分享我的发现,以免使人头疼。 添加Response.AddHeader(“ Content-Disposition”,“ inline; filename = myfilename.pdf”); 解决了大多数问题,但我仍然无法通过Google chrome浏览器中的“保存”按钮遇到问题(打印效果很好,但保存提示用户保存页面,而不是pdf)。 单击按钮即可在.aspx页上生成PDF。 生成后,我清除响应并将PDF转储到页面。 页面上的form元素没有设置方法,因此它作为post发送(通过fiddler发现)。 该页面是通过iframe共享的。 我在页面上将方法更改为GET,现在一切都按预期工作。

尝试:

Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.pdf");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM