如何使用 Web 处理程序创建 PDF?
How to use web handlers for PDF creation?
我对网络处理程序的了解很少。我所知道的是网络处理程序用于创建一些动态文件创建目的。
我还知道如何添加 Web 处理程序。
但是,我需要在我的 ASP.NET 项目中使用 Web 处理程序来创建 PDF。
您可以使用 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();
}
阅读 and MSDN: HTTP Handlers and HTTP Modules Overview。
您不需要处理程序来提供通过 HTTP 下载的文件。您还可以在 WebForms 页面以及 ASP.NET MVC 和 WebAPI 中生成和 return 文件响应。
根据您使用的技术,查看:
- HTTP 处理程序:, Dynamically create JS file using ASP.net Handler, MSDN: Serving Dynamic Content with HTTP Handlers
- WebForms 页面:.NET MVC FileResult equivalent in Web Forms
- ASP.NET MVC:Download file of any type in Asp.Net MVC using FileResult?
- WebAPI:Returning binary file from controller in ASP.NET Web API
当然,处理程序之上的任何层(与 运行 直接从处理程序编写代码相反)都会增加额外的开销(尽管它会很小),我怀疑 WebForms最重的。 MVC 和 WebAPI 是 运行 through the MvcHandler。
我对网络处理程序的了解很少。我所知道的是网络处理程序用于创建一些动态文件创建目的。
我还知道如何添加 Web 处理程序。
但是,我需要在我的 ASP.NET 项目中使用 Web 处理程序来创建 PDF。
您可以使用 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();
}
阅读 and MSDN: HTTP Handlers and HTTP Modules Overview。
您不需要处理程序来提供通过 HTTP 下载的文件。您还可以在 WebForms 页面以及 ASP.NET MVC 和 WebAPI 中生成和 return 文件响应。
根据您使用的技术,查看:
- HTTP 处理程序:, Dynamically create JS file using ASP.net Handler, MSDN: Serving Dynamic Content with HTTP Handlers
- WebForms 页面:.NET MVC FileResult equivalent in Web Forms
- ASP.NET MVC:Download file of any type in Asp.Net MVC using FileResult?
- WebAPI:Returning binary file from controller in ASP.NET Web API
当然,处理程序之上的任何层(与 运行 直接从处理程序编写代码相反)都会增加额外的开销(尽管它会很小),我怀疑 WebForms最重的。 MVC 和 WebAPI 是 运行 through the MvcHandler。