我正在使用第三方軟件從html文檔呈現PDF。我創建了一個小測試項目,並使用的OnClick
事件,我能夠從目錄中讀取html文檔並將其呈現爲PDF格式,沒有任何問題。HttpContext.Current.Response.AddHeader()未設置內容類型標題
的響應創建如下:
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的響應,我可以看到,內容類型被設置正確:
內容處置:內聯;文件名= HtmlToPdf.pdf;
的Content-Length:101482
內容類型:應用程序/ PDF
我已經試過以上轉移到我的當前項目。唯一的區別是,而不是一個我在DevExpress網格視圖內使用自定義按鈕。我最初處理回調面板中的自定義按鈕點擊,但未設置Content-Type。在Chrome中查看響應證明了這一點:
Content-Disposition:inline;文件名= 5.pdf;
內容編碼:gzip
的Content-Length:149015
內容類型:文本/無格式; charset = utf-8
我也試過使用gvDocuments.CustomButtonCallback += new ASPxGridViewCustomButtonCallbackEventHandler(gvDocuments_CustomButtonCallback);
事件,但Content-Type仍未設置。
任何人有任何想法,爲什麼我不能在上面的場景中設置Content-Type?
PDF看起來還好嗎?看起來,IIS管道中的某些內容正在應用壓縮,您是否嘗試禁用該功能? –
它甚至不呈現。響應是200 OK,但Content-Type是文本/純文本。我正在本地進行調試,因此使用VS Development Server。是否有任何理由不應該在回調/網格視圖自定義按鈕點擊事件中設置? – MattSull