如何从Java Web应用程序向浏览器发送PDF?

如何从Java Web应用程序向浏览器发送PDF?,java,pdf,Java,Pdf,我有一个java类,它可以将PDF文件生成到我的计算机中的文件夹中。我已成功将该类连接到web应用程序上的链接,当我单击该链接时,它将生成pdf并将其写入我计算机上的文件夹。我想改变这一点,让链接将pdf发送到浏览器。我该怎么做?该类不使用任何HttpRequests或类似内容,并且该链接不是超文本链接atm。我正在寻找最直接的方式将pdf发送到浏览器 您应该能够将pdf写入流,您可以将响应的输出流传递给它。有几种方法可以做到这一点: /* Java Code */ response.setCo

我有一个java类,它可以将PDF文件生成到我的计算机中的文件夹中。我已成功将该类连接到web应用程序上的链接,当我单击该链接时,它将生成pdf并将其写入我计算机上的文件夹。我想改变这一点,让链接将pdf发送到浏览器。我该怎么做?该类不使用任何HttpRequests或类似内容,并且该链接不是超文本链接atm。我正在寻找最直接的方式将pdf发送到浏览器

您应该能够将pdf写入流,您可以将响应的输出流传递给它。

有几种方法可以做到这一点:

/* Java Code */
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=path/to/file.pdf");
  • 将PDF文件放在Web上的某个可用位置,然后将用户重定向到URL,这将引导用户找到PDF文件(如果您的Web服务器支持)。使用“位置”HTTP头可以轻松完成重定向

  • 在HTTP响应流中发送PDF文件。注意,您必须在HTTP头中设置相应的Mime类型。实现取决于您在应用程序中使用的web服务器/web框架

  • 我将它(任何类型的文件)从servlet中的字节数组打印到响应流中

     if(content != null)
                    {
                        response.setContentType( "application/octet-stream" );
                                                response.setHeader("Content-Disposition", "attachment; filename=\"" + fname + "\"");
                    response.setContentLength(content.length);
                    out.write(content);
                }//where content  is byte[] 
    

    是否将pdf发送到浏览器?您的意思是“在浏览器中打开/查看pdf”吗?