2011-01-19 19 views
4

XMLファイルからPDFファイルを生成するサービスを作成しています。 PDFが正しく生成されています。ただし、「PDFの表示」リンクをクリックするたびに、ブラウザはPDFファイルをダウンロードするようにユーザーに求めます。RailsでPDF文書のインラインレンダリングを強制する

通常のHTMLページと同様に、PDFをインラインで表示する必要があります。私はコードを書いたが、何かが欠落していなければならない - ブラウザはユーザにダウンロードを依頼する。

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

任意のアイデア:

ここでは、現在のコードですか?

+0

これはブラウザによって異なります。あなたがテストしているブラウザがPDFをインラインで表示できることは確かですか? –

+0

はい、私は...実は、私が書いている(Rubyの)コードは、古い、バグの多いJavaの実装を置き換えています。私が取り組んでいるアプリケーションの "PDF生成サービス"のURLは設定可能ですので、私は古い実装を私のものに置き換えました。古いものはインラインで表示され、私はダウンロードを求めます。私は両方の応答ヘッダーを確認します。 –

答えて

3

Content-Dispositionヘッダーを削除してみます。 Content-Disposition: attachmentがうまく動作するのは私の経験でしたが、多くのブラウザでは他の値との一貫性がありません。インラインで表示したい場合は、ヘッダーを削除して、最良のものを得ることをお勧めします。 IEはこのヘッダーで最も問題があるようです。 (サプライズ、驚き。)あなたはまだContent-Type: application/pdfを設定していることを確認してください。

もう1つの方法は、iframeを使用し、iframesrcをPDFファイルに設定することです。インラインPDF表示をサポートするほとんどすべてのブラウザがこれを正しく処理します。欠点は、ブランクiframeが表示されてしまうことがあります。サポートされていないブラウザでは、単にPDFをダウンロードするだけで優雅なフォールバックが行われます。

+0

Content-Dispositionを削除すると、IE上でトリックが起こりました。 –

関連する問題