使用 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" );
为了清楚起见,我想在浏览器中显示内容(而不是直接下载)
我找到了解决方案here http://www.forumtopics.com/busobj/viewtopic.php?t=48651
基本上,这是更改 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>
使用调用 servlethttp://wherever/pdf/filename.pdf?param1=va1...
将文件名更改为“filename.pdf”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)