将PDF显示在HTML中而不是加载到Adobe或单独的窗口中

时间:2014-05-28 19:51:20

标签: java jquery jsp servlets pdf

我有一个java Web应用程序,理论上,当正常工作时,会在浏览器窗口中的某些输入文本框旁边显示PDF,以便员工可以索引文档并将其存储起来。

JSP URL:localhost:1234 / Application

目前正在发生的事情是:

- >用户告诉JSP告诉servlet进入文件系统并获取一批PDF

- > JSP显示抓取了哪个批次(文件夹),以及文件夹中包含的文件到屏幕

实施例

Folder1中:

-document1(按钮)

-document2(按钮)

-document3(按钮)

--->人员点击JSP上文档名称旁边出现的按钮,servlet以字节数组形式提供PDF数据,如下所示:

File file = new File(Dir + "\\" + batchName + "\\" + fileName);
byte[] by = new byte[(int) file.length()];
FileInputStream fis = new FileInputStream(file);
fis.read(by);
fis.close();

response.setContentType("application/pdf");
response.setHeader("Content-disposition", "attachment; filename=TheDocument." + "pdf");
response.getOutputStream().write(by);
response.getOutputStream().flush();
response.getOutputStream().close();

PDF然后在单独的窗口中打开,而不是运行应用程序,PDF文件将下载到计算机上的下载文件夹

此后发生的事情与本问题的范围无关。

我想要发生的是:

  1. 用户告诉JSP告诉servlet进入文件系统并获取一批PDF
  2. JSP显示抓取了哪个批次(文件夹),以及文件夹中包含的文件到屏幕
  3. 人员点击JSP中文档名称旁边的按钮,servlet提供PDF文档并将其加载到html页面,以便此人可以在同一窗口上实时查看并进行索引。
  4. 将标题更改为内联不会给我带来预期的效果,因为它在同一个浏览器窗口中加载PDF,但只有单击后才可以返回到我的JSP。它本质上加载了一个全新的HTML / JSP窗口。在这种情况下,浏览器实际上指向我的servlet:

    本地主机:1234 /应用/ Servlet的

    以下是我希望应用程序看起来像:

    ApplicationTemplate

    我已经查看了几个jquery插件,如PDFObject,Colorbox等等。我似乎没有得到我想要的预期效果。

3 个答案:

答案 0 :(得分:1)

您可以使用pdf.js呈现pdf,并使用pdf.js不支持的浏览器Flash回退。

helloworld示例在<canvas>元素中呈现pdf。

答案 1 :(得分:0)

PDF是在单独的应用程序中打开还是在浏览器中打开,是浏览器,Adobe和Windows资源管理器中的设置(假设是Windows)。您无法控制它,没有在Flash应用程序中显示PDF,然后用户可能没有Flash。

答案 2 :(得分:0)

不确定这是否是您正在寻找的内容,但通常您可以将PDF放入iframe并以此方式打开。 PDF只需要在您的服务器上发布。

这个答案可以帮到你:

How to open a PDF file in an <iframe>?