我在 iTextSharp 库中制作了pdf文件。我使用以下代码。这个pdf是自动保存在文件夹中。但我希望pdf打开是在新标签页。怎么可能。
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
using (iTextSharp.text.Document doc = new iTextSharp.text.Document())
{
using (iTextSharp.text.pdf.PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, ms))
{
doc.Open();
doc.Add(new iTextSharp.text.Paragraph(lblMessage.Text.ToString()));
doc.Close();
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Receipt3.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.BinaryWrite(ms.ToArray());
System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();
}
}
}
答案 0 :(得分:3)
您可能需要考虑<a>
target attribute。您可以使用它在新窗口中打开PDF,可能使用以下内容:
<a href="GeneratePdf.ashx?somekey=10" target="_blank">
更新 - 正如您现在所说的那样,您不介意它是否在浏览器窗口中,我首选的技术是根据MercerTraieste答案将内容处置更改为附件。
如果您使用的是ASP.NET,那么考虑编写自定义HttpHandler来为您流式传输PDF绝对是一个好主意。