Java中实现PDF的在线查看和下载,可以以servlet来实现。
/** * 支持在线打开和下载 * * @param filePath * @param response * @param isOnLine * @param fname * @throws IOException */ public void download(String filePath, HttpServletResponse response, boolean isOnLine, String fname) throws IOException { System.out.println("filePath:" + filePath); File f = new File(filePath); if (!f.exists()) { response.sendError(404, "File not found!"); return; } BufferedInputStream br = new BufferedInputStream(new FileInputStream(f)); byte[] bs = new byte[1024]; int len = 0; response.reset(); // 非常重要 if (isOnLine) { // 在线打开方式 URL u = new URL("file:///" + filePath); String contentType = u.openConnection().getContentType(); response.setContentType(contentType); response.setHeader("Content-Disposition", "inline;filename=" + fname); // 文件名应该编码成utf-8,注意:使用时,我们可忽略这句 } else { // 纯下载方式 response.setContentType("application/x-msdownload"); response.setHeader("Content-Disposition", "attachment;filename=" + fname); } OutputStream out = response.getOutputStream(); while ((len = br.read(bs)) > 0) { out.write(bs, 0, len); } out.flush(); out.close(); br.close(); } // 这个代码是网上找的,我那时候试过,是可以打开的,我测试的是firefox20, // 其他的没试过了。你可能要装下pdf的阅读插件。另外,我测试了IE8是可行的,但是它似乎调用了福昕阅读器(测试的电脑安装了福昕),查看的时候可以打印等多种操作,但是不能另存为。