使用itextsharp将默认名称设置为PDF文档

时间:2013-04-18 21:06:52

标签: asp.net vb.net pdf itextsharp

我正在向我的页面发送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文档设置默认名称?

2 个答案:

答案 0 :(得分:0)

我遇到类似的问题,通过处理程序页面(.ashx)提供PDF。无论我在HTTP标头中设置什么,当我使用此URL时,从浏览器中保存PDF阅读器总是将文件名设置为“getpdf.pdf”。

http://www.thepdfchef.com/handlers/getpdf.ashx?id=5188p

所以我所做的是在处理程序路径之后添加一个转义字符串,然后在结尾处添加查询字符串,如下所示:

http://www.thepdfchef.com/handlers/getpdf.ashx/Wellbeing%20And%20Domestic%20Assistance%20From%20John%20Paul?id=5188p

您应该检查无效字符并删除任何可能导致名称危险的字符。

答案 1 :(得分:0)

尝试使用此代码:

Response.ContentType = "application/pdf"
Response.AppendHeader("Content-Disposition", "inline; filename="filename".pdf")
Response.TransmitFile("filename")
Response.End()