在我的控制器中,我想打开一个pdf并将其流式传输到浏览器。如果我不使用open参数,此代码可以正常工作。但是,我需要在文件名之后使用#search =“java”之类的开放参数。如果它是一个url,使用open参数可以正常工作,但有一种方法可以使用adobe open参数来打开文件。
我正在使用的代码是:
private static final String DOCUMENT_LOCATION = "C:\\testPDF\\mytest.pdf#search=" + "\"" + "java" + "\"";
@RequestMapping(method=RequestMethod.GET)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// set some response headers
response.setContentType("application/pdf");
InputStream in = new FileInputStream(DOCUMENT_LOCATION);
OutputStream out = response.getOutputStream();
// Copy the bits from instream to outstream
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
}
答案 0 :(得分:1)
如果您想使用Adobe Acrobat Reader支持的某些参数,则必须搜索一种方法,将这些参数指定给浏览器中的插件或客户端计算机中的阅读器。
由于Java只是打开文件并且对其格式一无所知,因此无法在服务器中“打开”文件,因为Java只是打开文件。
答案 1 :(得分:1)