【发布时间】:2011-04-21 15:27:53
【问题描述】:
我想在我的 JSF 页面上显示一个 PDF 文件,我已经检查了这个 how to display a pdf document in jsf page in iFrame,但我不想在 iframe 上显示它(因为它会生成滚动条)。我只想将 pdf 像图像一样显示在页面上,并能够为其提供宽度和高度。
编辑 Hi BalusC。我仍然无法显示 pdf 内联。这是我的代码。
@WebServlet(name = "pdfHandler", urlPatterns = {"/pdfHandler/*"})
public class pdfHandler extends HttpServlet {
private static final int DEFAULT_BUFFER_SIZE = 10240;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String requestedFile = request.getPathInfo();
File file = new File("/Users/KingdomHeart/Downloads/Test/pdf/" + requestedFile);
response.reset();
response.setContentType("application/pdf");
response.setBufferSize(DEFAULT_BUFFER_SIZE);
response.setHeader("Content-Length", String.valueOf(file.length()));
response.setHeader("Content-Disposition", "inline; filename=\"" + file.getName() + "\"");
BufferedInputStream input = null;
BufferedOutputStream output = null;
try{
input = new BufferedInputStream(new FileInputStream(file), DEFAULT_BUFFER_SIZE);
output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE);
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
int length;
while((length = input.read(buffer)) > 0){
output.write(buffer, 0, length);
}
}finally{
output.close();
input.close();
}
}
...
}
它仍然提示我下载 pdf 文件。下载到我的电脑的 pdf 文件是正确的 pdf 文件。你能发现什么不对劲吗?
【问题讨论】:
-
首先,检查您的浏览器是否安装了 Adobe Reader 插件。您可以在浏览器中查看 PDF 文档,还是仍然要求下载?