如何使用Web处理程序创建PDF?

时间:2015-05-06 11:12:29

标签: c# asp.net web-applications ashx aspx-user-control

我在网络处理程序方面的知识相当少。我所知道的是web处理程序用于创建一些动态文件创建的目的。 而且我也知道如何添加Web处理程序。 但是,我需要在我的Asp.Net项目中使用Web处理程序来创建PDF。 有人有想法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用HTTP处理程序来提供这样的PDF:

public void ProcessRequest (HttpContext context) {

    // Get your file as byte[]
    string filename = "....file name.";
    byte[] data = get your PDF file content here;

    context.Response.Clear();
                context.Response.AddHeader("Pragma", "public");
                context.Response.AddHeader("Expires", "0");
                context.Response.AddHeader("Content-Type", ContentType);
                context.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", filename));
                context.Response.AddHeader("Content-Transfer-Encoding", "binary");
                context.Response.AddHeader("Content-Length", data.Length.ToString());
                context.Response.BinaryWrite(data);
                context.Response.End(); 

}

答案 1 :(得分:1)

阅读What is an HttpHandler in ASP.NETMSDN: HTTP Handlers and HTTP Modules Overview

不需要处理程序来提供通过HTTP下载的文件。您还可以在WebForms页面以及ASP.NET MVC和WebAPI中生成和返回文件响应。

根据您使用的技术,请查看:

当然,处理程序顶部的任何层(与直接从处理程序运行代码相反)会增加额外的开销(虽然它会很小),我怀疑WebForms是最重的。 MVC和WebAPI运行through the MvcHandler