【发布时间】:2011-02-02 10:14:12
【问题描述】:
在我的应用程序中,我想在浏览器中或浏览器之外显示一个可打印的 PDF acrobat 文件,而不是保存。默认情况下,在 Firefox 中它会要求保存或打开,我不需要那个对话。我想最好在浏览器之外显示该文件。你能推荐我吗?
谢谢,
瓦拉·库马尔.PJD
【问题讨论】:
在我的应用程序中,我想在浏览器中或浏览器之外显示一个可打印的 PDF acrobat 文件,而不是保存。默认情况下,在 Firefox 中它会要求保存或打开,我不需要那个对话。我想最好在浏览器之外显示该文件。你能推荐我吗?
谢谢,
瓦拉·库马尔.PJD
【问题讨论】:
您可以建议浏览器在窗口中显示 PDF,而不是通过Content-Disposition header 提供下载:
response.addHeader("Content-Disposition", "inline");
“inline”值表明内容被内联呈现(与“attachment”值相反,表明浏览器提供下载它)。
一旦您向浏览器提出建议,浏览器可能会也可能不会接受您的建议,具体取决于其实施方式以及可能的用户偏好。
【讨论】:
target 属性设置为 _blank。我成功地使用该标题来控制用户单击链接时会发生什么。使用标准 IE6、IE7、Firefox 和 Chrome 设置,它似乎可以工作。
Content-Disposition header”是它的 RFC 链接,它详细解释了它。基本上,它的意思是,“这就是你应该如何处理我发送给你的内容。”
我不认为这是你可以从你的应用程序控制的东西,我认为这是用户正在使用的环境/浏览器/插件的问题......但是 zou 可以像这样通过 javascript 为你的 pdf 打开新窗口link
【讨论】:
你可以这样做。
response.setContentType("application/pdf");
InputStream in = new FileInputStream("answerconnect.pdf");
OutputStream out = response.getOutputStream();
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
【讨论】: