-1

Request マッピングを呼び出すときに Spring Controller を使用しています。PDF ファイルを生成していますが、問題は、生成された PDF の名前が Request マッピング名と同じであることです。

ここで、@PathVariable を使用して名前を付けることができることを知っていますが、それを使用したくありません。

例 :

@RequestMapping(value = { "/pdfDownload" }, method = RequestMethod.GET)
public void pdfDownload(HttpServletRequest request, HttpServletResponse response) {
        //Logic OF generating PDF file

    // set response
    response.setContentType("application/pdf");
    response.setCharacterEncoding("UTF-8");
    response.setHeader("Content-Disposition", "inline; filename=Mypdf12345.pdf");

}

ここで、生成された PDF ファイルの名前は pdfDownload ですが、Mypdf12345.pdf として欲しいです。@PathVariable を使いたくない

この問題を解決するのを手伝ってください。ありがとうございました。

4

3 に答える 3

-1

私は答えを得ました。以前の問題は、PDF ドキュメントを書き込むために応答の出力ストリームを使用していたことです。したがって、今私は PDF ドキュメントを ByteArrayOutputStream に書き込んでおり、書き込みが完了した後、そのストリームを応答の出力ストリームに書き込んでいます。

例えば

@RequestMapping(value = { "/pdfDownload" }, method = RequestMethod.GET)
public void pdfDownload(HttpServletRequest request, HttpServletResponse response) {

      //using bytearrayoutputstream instead of response outputstream,
      ByteArrayOutputStream  out = new ByteArrayOutputStream();


        //Logic OF generating PDF file

    // set response
    response.setContentType("application/pdf");
    response.setCharacterEncoding("UTF-8");
    response.setHeader("Content-Disposition", "inline; filename=Mypdf12345.pdf");

    //transferring that stream to response output stream
    out.writeTo(response.getOutputStream());

}

それでおしまい。ご回答ありがとうございます。

于 2013-10-23T04:45:58.527 に答える