【问题标题】:set default name to PDF document with itextsharp使用 itextsharp 将默认名称设置为 PDF 文档
【发布时间】:2013-04-12 03:58:36
【问题描述】:

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

【问题讨论】:

标签: asp.net vb.net pdf itextsharp


【解决方案1】:

我在通过处理程序页面 (.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

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

【讨论】:

    【解决方案2】:

    试试这个代码:

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

    【讨论】:

      猜你喜欢
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 2011-01-22
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多