3

XSLT、XSL-FO、Apache FOPを適切に組み合わせて、PDFをブラウザウィンドウに送信することができます。
実際、私はファイルの内容を次のように送信しています。

           response.setContentType( "application / pdf");
            response.setContentLength(out.size());
            response.getOutputStream()。write(out.toByteArray());
            response.getOutputStream()。flush();

予想どおり、ブラウザは「pdf」という名前のタブにPDFコンテンツを表示します。ファイルをローカルに保存すると、名前もデフォルトでpdf.pdf
になります。ファイル名を強制するにはどうすればよいですか。

うまくいかなかったものの中で、次のことを試しました。

           response.setHeader( "Content-Disposition"、 "inline; filename =" + filename + ".pdf"); 

わかりやすくするために、コンテンツをブラウザに表示したい(直接ダウンロードするのではなく)

4

1 に答える 1

8

私はここで解決策を見つけました

基本的には、web.xml
のURLパターンを変更するだけです。ブラウザは、以前のページ名のように見えるもの
を使用します。

<servlet-mapping>
        <servlet-name>PDF</servlet-name>
        <url-pattern>/pdf</url-pattern>
    </servlet-mapping>

置き換えました

<servlet-mapping>
        <servlet-name>PDF</servlet-name>
        <url-pattern>/pdf/*</url-pattern>
    </servlet-mapping>

を使用してサーブレットを呼び出すとhttp://wherever/pdf/filename.pdf?param1=va1...、ファイル名が「filename.pdf」に変更されます。

于 2013-01-21T23:31:36.877 に答える