在Web浏览器中发送PDF文件

时间:2013-10-30 04:51:47

标签: java spring spring-mvc pdf

我了解到我不能只将本地网址设置为HTML的object标记,这使我更加搜索。结果,我看到了这个post,它非常详细且记录完备。但我不知道这是否适合我,我对JSF一无所知。

我想要做的是在网络浏览器中发送PDF文件,或者只是将PDF文件嵌入到本地路径的浏览器中。有没有办法在春天这样做?我使用commons-fileupload将PDF上传到本地路径,因为他们说这是一个很好的做法。现在剩下的就是显示它。

顺便说一下,我正在使用Spring MVC,如果这也有助于澄清我需要的方法。

更新

到目前为止我学到的是使用@ResponseBody来返回字节,所以我尝试了这个:

@ResponseBody
@RequestMapping(value = "/get/pdf", produces="application/pdf")
public byte[] download( HttpServletResponse response ) throws IOException {

     response.setContentType( "application/pdf" );
     byte[] test = null;
     try
     {
          String path = new FileDAO().getFilePath( 1 );
          File file = new File( path );

          test = new byte[ ( int ) file.length() ];

          FileInputStream fileInputStream = new FileInputStream( file );
          fileInputStream.read( test );
     }
     catch( Exception e )
     {
          e.printStackTrace();
     }
     return test;
}

网页的结果是这样的。

result

我想在objectiframe标记中显示PDF文件。

1 个答案:

答案 0 :(得分:0)

使用Spring MVC然后在其他帖子中的建议稍微简单一些。使用@ResponseBody,您可以通过从控制器返回来为响应编写几乎任何内容。

@ResponseBody
@RequestMapping(value = "/get/pdf", produces="application/pdf")
public byte[] download(HttpServletResponse response) throws IOException {
    response.setContentType("application/pdf");
    return getPdfBytes();
}