2011-01-19 25 views
4

我正在寫一組的XML文件生成PDF文件的服務。 PDF正在正確生成。但是,每次點擊「查看PDF」鏈接時,瀏覽器都會要求用戶下載PDF文件。強制PDF文檔的在線呈現Rails中

我需要PDF以內聯方式顯示,就像任何普通的HTML頁面一樣。雖然我編寫的代碼是正確的,但是必須丟失一些東西 - 瀏覽器不斷要求用戶下載。

下面是當前的代碼:

class PdfController < Controller 
    def generate 
    # stuff 
    send_data pdf_bytes, :disposition => 'inline', :type => 'application/pdf' 
    end 
end 

任何想法?

+0

這將取決於瀏覽器。你確定你正在測試的瀏覽器能夠在線顯示PDF嗎? – 2011-01-19 22:26:38

+0

是的,我......其實,一段代碼,我寫(在Ruby中)正在取代舊的,馬車的Java實現。對於「PDF生成服務」在我工作的應用程序的URL是可配置的,所以我只是取代了舊的實現與礦井。舊的顯示內聯,我的要求下載。我現在將檢查兩個響應頭。 – 2011-01-19 22:29:25

回答

3

嘗試徹底刪除Content-Disposition標頭。這是我的經驗是Content-Disposition: attachment效果很好,但許多瀏覽器有任何其他值不一致的行爲。如果你想內聯顯示,最好刪除標題並希望最好。 IE似乎有這個標題最多的問題。 (驚喜,驚喜。)只要確定你還在設置Content-Type: application/pdf

另一種選擇是使用iframe並將iframesrc設置爲您的PDF文件。幾乎所有支持內聯PDF查看的瀏覽器都能正確處理這一問題。缺點是,你最後可能會顯示空白iframe而不可支持的瀏覽器會另外做一個優雅的後備簡單地下載PDF。