0

本质上,我正在将 pdf 从内存流式传输到用户的浏览器。我想让系统用户能够在 adobe 中(在浏览器中)点击保存,并让文件名预先填充一个动态值(例如客户的姓氏)。

到目前为止,我已经阅读了一些有关此问题的信息,似乎设置内联文件名的内容处置标头未正确实现。

我已经读过 adobe 从生成 pdf 的页面中获取文件名。即如果页面名称是pdfviewer.aspx,那么pdf文件名的预填充值为pdfviewer.pdf。

我正在寻找解决方法。我最初的想法是创建一个 http 处理程序,它将生成并推出 pdf,并具有这样的 web 配置:

 <add verb="*" path="*.ashx" type="Logic.PDFHandler" />

这样,当我将链接动态设置为“lastname.ashx”时,它应该在 PDFHandler 中运行代码,而 url 将类似于“...\lastname.ashx”。我似乎能够让它在概念验证中工作(用简单的 repsonse.write("hello world") 代替 pdf 的生成),但我只是想知道,是否有更好的解决方法?

注意:概念证明仅适用于 IE,我很高兴,因为它是针对此 Intranet 应用程序的浏览器。

4

2 回答 2

0

ASP.NET 路由可以让你路由/GeneratePDF/{id}/{lastname}.pdf或其他东西到你的处理程序。

于 2011-08-29T03:45:19.553 回答
0

让浏览器要求您使用给定名称保存 PDF 的方法如下:

// code runs on ASP.NET server
Response.Clear();
Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}".
   fileName);
Response.ContentType = "application/pdf";
// stream PDF to response object
于 2011-08-29T08:33:15.953 回答