我正在向我的页面发送PDF,并且我想在用户尝试保存PDF文档时设置默认名称。
我正在使用ItextSharp和VB.Net
Using s As MemoryStream = New MemoryStream()
Dim Pdf_Writer As PdfWriter = PdfWriter.GetInstance(DocumentPDF, s)
DocumentPDF.Open()
DocumentPDF.SetMargins(10.0F, 10.0F, 10.0F, 10.0F)
DocumentPDF.Add(Table)
DocumentPDF.Close()
contentX= s.ToArray()
HttpContext.Current.Response.Buffer = False
HttpContext.Current.Response.Clear()
HttpContext.Current.Response.ClearContent()
HttpContext.Current.Response.ClearHeaders()
HttpContext.Current.Response.ContentType = "Application/pdf"
HttpContext.Current.Response.BinaryWrite(contentX)
HttpContext.Current.Response.Flush()
HttpContext.Current.Response.End()
End Using
Response.AddHeader("content-disposition", @"attachment;filename=""MyFile.pdf""");
这样下载文件(是的,它设置了一个默认名称),但我只想显示该文件,如果用户想要保存它,那么...保存它(使用默认名称)
如何为PDF文档设置默认名称?
答案 0 :(得分:0)
我遇到类似的问题,通过处理程序页面(.ashx)提供PDF。无论我在HTTP标头中设置什么,当我使用此URL时,从浏览器中保存PDF阅读器总是将文件名设置为“getpdf.pdf”。
http://www.thepdfchef.com/handlers/getpdf.ashx?id=5188p
所以我所做的是在处理程序路径之后添加一个转义字符串,然后在结尾处添加查询字符串,如下所示:
您应该检查无效字符并删除任何可能导致名称危险的字符。
答案 1 :(得分:0)
尝试使用此代码:
Response.ContentType = "application/pdf"
Response.AppendHeader("Content-Disposition", "inline; filename="filename".pdf")
Response.TransmitFile("filename")
Response.End()