Я использую стороннее программное обеспечение для рендеринга PDF-документов из html-документов. Я создал небольшой тестовый проект и использовал событие OnClick
. Я смог прочитать html-документ из каталога и без проблем представить его как PDF.HttpContext.Current.Response.AddHeader() не задает заголовок Content-Type
Ответ создается следующим образом:
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("Content-Type", "application/pdf");
HttpContext.Current.Response.AddHeader("Content-Disposition",
String.Format("{0}; filename=Test.pdf;", "inline"));
HttpContext.Current.Response.BinaryWrite(pdfBuffer);
HttpContext.Current.ApplicationInstance.CompleteRequest();
Когда я смотрю на ответ в Chrome, я могу видеть, что Content-Type создается правильно:
Content-Disposition: встроенный ; имя файла = HtmlToPdf.pdf;
Content-Length: 101482
Content-Type: применение/PDF
Я пытался передать выше моего нынешнего проекта. Единственная разница заключается в том, что вместо одного я использую пользовательскую кнопку в виде сетки DevExpress. I Изначально обработал пользовательский щелчок на панели обратного вызова, но Content-Type не был установлен. Просмотр ответа в Chrome доказал это:
Содержание-Распорка: inline; имя файла = 5.pdf;
Content-Encoding: GZIP
Content-Length: 149015
Content-Type: Текст/равнину; charset = utf-8
Я также пробовал использовать событие gvDocuments.CustomButtonCallback += new ASPxGridViewCustomButtonCallbackEventHandler(gvDocuments_CustomButtonCallback);
, но Content-Type по-прежнему не установлен.
У кого-нибудь есть идеи относительно того, почему я не могу установить Content-Type в вышеуказанном сценарии?
Сохраняет ли PDF все в порядке? Похоже, что что-то в конвейере IIS применяет сжатие, вы пытались отключить это? –
Он даже не выводит. Ответ - 200 OK, но Content-Type - текстовый/обычный. Я отлаживаю локально, так что это с VS Development Server. Будет ли какая-либо причина, почему она не должна устанавливаться в пользовательском событии click callback/grid view? – MattSull