我有一个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文件将下载到计算机上的下载文件夹
此后发生的事情与本问题的范围无关。
我想要发生的是:
将标题更改为内联不会给我带来预期的效果,因为它在同一个浏览器窗口中加载PDF,但只有单击后才可以返回到我的JSP。它本质上加载了一个全新的HTML / JSP窗口。在这种情况下,浏览器实际上指向我的servlet:
本地主机:1234 /应用/ Servlet的
以下是我希望应用程序看起来像:
我已经查看了几个jquery插件,如PDFObject,Colorbox等等。我似乎没有得到我想要的预期效果。
答案 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只需要在您的服务器上发布。
这个答案可以帮到你: