2011-08-29 19 views
0

本質上,我將內存中的pdf傳輸到用戶的瀏覽器。我想允許系統用戶能夠在adobe(瀏覽器)中點擊保存,並且文件名預填充一個動態值(例如客戶的姓氏)。內聯文件名內容處置和注入動態文件名以保存動作的解決方案

到目前爲止,我已經讀了一些關於這個問題的內容,似乎設置內聯文件名的內容處置標題沒有正確實現。

我讀過,adobe從生成pdf的頁面獲取文件名。即如果頁面名稱爲pdfviewer.aspx,則pdf的文件名的預填充值爲pdfviewer.pdf。

我正在尋找解決辦法。我最初的想法是一個HTTP處理程序,這將產生並推出了PDF格式,並在網絡配置這樣:

<add verb="*" path="*.ashx" type="Logic.PDFHandler" /> 

當我動態設置到「lastname.ashx」這樣一來,它應該運行在PDFHandler中的代碼,而url將會像「... \ lastname.ashx」一樣。我似乎可以通過一個簡單的repsonse.write(「hello world」)來代替pdf的生成,但我只是想知道,如果有更好的解決方法?

注意:概念證明只適用於IE,我很高興,因爲它是針對這個Intranet應用程序的瀏覽器。

回答

0

ASP.NET路由會讓你路由/GeneratePDF/{id}/{lastname}.pdf或其他東西到你的處理程序。

0

,使瀏覽器提示您保存的PDF與給定的名稱是如下的方式:

// code runs on ASP.NET server 
Response.Clear(); 
Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}". 
    fileName); 
Response.ContentType = "application/pdf"; 
// stream PDF to response object 
+1

這給你一個保存對話框(與文件名預充式),但是,我的解決方案後, pdf在瀏覽器中流式傳輸(並打開)。一旦打開,adobe允許您保存pdf,但是從頁面獲取文件名而不是標題。 –

+0

在這種情況下,將'attachment'改爲'inline'。 –

+1

內聯在IE8中不起作用。我很確定這是一個現有的bug。 –

相關問題