在控制器中打开PDF - 无法使用打开的参数

时间:2011-10-27 20:45:40

标签: java spring pdf adobe

在我的控制器中,我想打开一个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(); 

} 

2 个答案:

答案 0 :(得分:1)

如果您想使用Adobe Acrobat Reader支持的某些参数,则必须搜索一种方法,将这些参数指定给浏览器中的插件或客户端计算机中的阅读器。

由于Java只是打开文件并且对其格式一无所知,因此无法在服务器中“打开”文件,因为Java只是打开文件。

答案 1 :(得分:1)

事实证明adobe不再支持开放参数,所以我最终做的是传递搜索url参数,该参数自动在Adobe中打开搜索功能。 Unfortunatley这在Firefox中仅在IE中不起作用。