Как использовать веб-обработчики для создания PDF?
У меня довольно мало знаний о веб-обработчиках. все, что я знаю, это то, что веб-обработчики используются для создания динамических целей создания файлов. а также я знаю, как добавить веб-обработчики. Но мне нужно использовать веб-обработчики в моем проекте Asp.Net для целей создания PDF. У кого-нибудь есть идея?
2 ответа
У вас может быть обработчик 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();
}
Прочтите, что такое HttpHandler в ASP.NET и MSDN: обзор обработчиков HTTP и модулей HTTP.
Вам не нужен обработчик для обслуживания файлов для загрузки по HTTP. Вы также можете генерировать и возвращать ответ файла на странице WebForms, а также из ASP.NET MVC и WebAPI.
В зависимости от используемой вами технологии, проверьте:
- Обработчик HTTP: ASP.NET добавляет обработчик http для редактирования имени загруженного файла, Динамически создает файл JS с помощью обработчика ASP.net, MSDN: Обслуживание динамического содержимого с помощью обработчиков HTTP.
- Страница веб-форм: эквивалент файла.NET MVC FileResult в веб-формах
- ASP.NET MVC: скачать файл любого типа в Asp.Net MVC, используя FileResult?
- WebAPI: возврат двоичного файла из контроллера в ASP.NET Web API
Конечно, любой слой поверх обработчика (в отличие от запуска вашего кода непосредственно из обработчика) добавляет дополнительные издержки (хотя они будут минимальными), где я подозреваю, что WebForms будут самыми тяжелыми. MVC и WebAPI запускаются через MvcHandler.