java 直接打开pdf文件
2010-09-10 17:26
387 查看
第一种:
1、 思路:a、判断原文类型,若为pdf,则单独处理;
b、调用本地的adobe插件进行浏览
2、 代码
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000"
width="990" height="700" border="0" top="-10" name="pdf">
<param name="toolbar" value="false">
<param name="_Version" value="65539">
<param name="_ExtentX" value="20108">
<param name="_ExtentY" value="10866">
<param name="_StockProps" value="0">
<param name="SRC" value="<%=strFileName%>">
</object>
3、 截图
4、 优势
采用此方法,不会单独跳出界面调用本地浏览器查看。
5、 缺陷
由于插件中有保存副本,快照,复制,发送等功能,仍然破坏了档案的保密性。
第二种
1、 思路:a、判断原文类型,若为pdf,则单独处理;
b、调用本地的adobe插件进行浏览;
c、利用<p>的属性,将本地插件的工具栏上移;
2、 代码
<p style="margin-top:-50px;margin-bottom:0px;">
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="600" border="0">
<param name="_Version" value="65539">
<param name="_ExtentX" value="20108">
<param name="_ExtentY" value="10866">
<param name="_StockProps" value="0">
<param name="SRC" value="<%=strFileName%>">
</object>
</p>
3、 截图
4、 优势
A、采用此方法,不会单独跳出界面调用本地浏览器查看。
B、 且保存、复制等泄密功能不可见;
5、 缺陷
若本地pdf浏览器为acrobat,或者adobe版本为9.0,则就不能放大缩小查看。
第三种
1、 思路:a、判断原文类型,若为pdf,则单独处理;
b、调用本地的adobe插件进行浏览;
c、利用<div>以及<iframe>的属性,将本地插件的保存、复制按钮遮挡住;
2、 代码
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="990" height="700" border="0" top="-10" name="pdf">
<param name="toolbar" value="false">
<param name="_Version" value="65539">
<param name="_ExtentX" value="20108">
<param name="_ExtentY" value="10866">
<param name="_StockProps" value="0">
<param name="SRC" value="<%=strFileName%>">
</object>
<iframe style="position:absolute;left:0px;top:0px;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0)" src="about:<div style='border:1px solid red;width:100px;height:50px;'>文字</div>"></iframe>
3、 截图
4、 优势
a) 采用此方法,不会单独跳出界面调用本地浏览器查看。
b) 且保存、复制等泄密功能不可见;
5、 缺陷
A、若本地pdf浏览器为除acrobat以外的adobe产品,一旦触发控件中某操作,<iframe>就会消失,知道再次触发页面。
B、 采用层或者<iframe>,涉及到浏览器的类别,以及电脑屏幕的尺寸等等。
第四种
1、 思路:a、判断原文类型,若为pdf,则单独处理;
b、采用输出流来浏览pdf
2、 代码
response.setContentType("application/pdf; charset=gbk");
response.setHeader("Content-disposition",path);
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(path);
os = response.getOutputStream();
int readLen = 0;
byte[] bytes = new byte[1024];
while ((readLen = is.read(bytes)) != -1) {
os.write(bytes, 0, readLen);
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (is != null)
is.close();
if (os != null)
os.close();
out.clear();
out = pageContext.pushBody();
}
} else if (path.indexOf(".ppt") != -1) {
response.setContentType("application/vnd.ms-powerpoint; charset=gbk");
response.setHeader("Content-disposition",path);
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(path);
os = response.getOutputStream();
int readLen = 0;
byte[] bytes = new byte[1024];
while ((readLen = is.read(bytes)) != -1) {
os.write(bytes, 0, readLen);
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (is != null)
is.close();
if (os != null)
os.close();
out.clear();
out = pageContext.pushBody();
}
3、 截图
4、 优势
a) 采用此方法,不会单独跳出界面调用本地浏览器查看。
5、 缺陷
A、存在保存、复制等泄密功能
1、 思路:a、判断原文类型,若为pdf,则单独处理;
b、调用本地的adobe插件进行浏览
2、 代码
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000"
width="990" height="700" border="0" top="-10" name="pdf">
<param name="toolbar" value="false">
<param name="_Version" value="65539">
<param name="_ExtentX" value="20108">
<param name="_ExtentY" value="10866">
<param name="_StockProps" value="0">
<param name="SRC" value="<%=strFileName%>">
</object>
3、 截图
4、 优势
采用此方法,不会单独跳出界面调用本地浏览器查看。
5、 缺陷
由于插件中有保存副本,快照,复制,发送等功能,仍然破坏了档案的保密性。
第二种
1、 思路:a、判断原文类型,若为pdf,则单独处理;
b、调用本地的adobe插件进行浏览;
c、利用<p>的属性,将本地插件的工具栏上移;
2、 代码
<p style="margin-top:-50px;margin-bottom:0px;">
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="600" border="0">
<param name="_Version" value="65539">
<param name="_ExtentX" value="20108">
<param name="_ExtentY" value="10866">
<param name="_StockProps" value="0">
<param name="SRC" value="<%=strFileName%>">
</object>
</p>
3、 截图
4、 优势
A、采用此方法,不会单独跳出界面调用本地浏览器查看。
B、 且保存、复制等泄密功能不可见;
5、 缺陷
若本地pdf浏览器为acrobat,或者adobe版本为9.0,则就不能放大缩小查看。
第三种
1、 思路:a、判断原文类型,若为pdf,则单独处理;
b、调用本地的adobe插件进行浏览;
c、利用<div>以及<iframe>的属性,将本地插件的保存、复制按钮遮挡住;
2、 代码
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="990" height="700" border="0" top="-10" name="pdf">
<param name="toolbar" value="false">
<param name="_Version" value="65539">
<param name="_ExtentX" value="20108">
<param name="_ExtentY" value="10866">
<param name="_StockProps" value="0">
<param name="SRC" value="<%=strFileName%>">
</object>
<iframe style="position:absolute;left:0px;top:0px;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0)" src="about:<div style='border:1px solid red;width:100px;height:50px;'>文字</div>"></iframe>
3、 截图
4、 优势
a) 采用此方法,不会单独跳出界面调用本地浏览器查看。
b) 且保存、复制等泄密功能不可见;
5、 缺陷
A、若本地pdf浏览器为除acrobat以外的adobe产品,一旦触发控件中某操作,<iframe>就会消失,知道再次触发页面。
B、 采用层或者<iframe>,涉及到浏览器的类别,以及电脑屏幕的尺寸等等。
第四种
1、 思路:a、判断原文类型,若为pdf,则单独处理;
b、采用输出流来浏览pdf
2、 代码
response.setContentType("application/pdf; charset=gbk");
response.setHeader("Content-disposition",path);
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(path);
os = response.getOutputStream();
int readLen = 0;
byte[] bytes = new byte[1024];
while ((readLen = is.read(bytes)) != -1) {
os.write(bytes, 0, readLen);
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (is != null)
is.close();
if (os != null)
os.close();
out.clear();
out = pageContext.pushBody();
}
} else if (path.indexOf(".ppt") != -1) {
response.setContentType("application/vnd.ms-powerpoint; charset=gbk");
response.setHeader("Content-disposition",path);
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(path);
os = response.getOutputStream();
int readLen = 0;
byte[] bytes = new byte[1024];
while ((readLen = is.read(bytes)) != -1) {
os.write(bytes, 0, readLen);
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (is != null)
is.close();
if (os != null)
os.close();
out.clear();
out = pageContext.pushBody();
}
3、 截图
4、 优势
a) 采用此方法,不会单独跳出界面调用本地浏览器查看。
5、 缺陷
A、存在保存、复制等泄密功能
相关文章推荐
- java 直接打开pdf文件
- java 直接打开pdf文件
- Java 下载文件,浏览器直接打开,并且PDF再次点击下载时,文件名称设置正确
- html5链接直接下载文件 不是直接打开 如pdf, doc 等
- JSP直接打开PDF文件
- 如何在html中下载pdf等文件而不是直接打开
- 从“为什么不能直接打开PDF文件”说到“脚本攻击”
- Java直接打开文件或超链接
- 关于使用java或者前段jsp打开本地PDF文件
- 使用firefox直接 打开pdf文件可以破解禁止打印的功能
- 如何用java程序直接打开一个Excel文件.
- OpenSUSE Leap 42.3下通过Firefox Opera Chromium浏览器直接执行java应用程序(打开java jnlp文件)实现在服务器远程虚拟控制台完成远程管理的方法
- JAVA打开PDF文件
- 记录一下:上传到服务器上的pdf 文件直接下载而非在浏览器里打开
- 在jsp页面上直接打开PDF文件
- 无法直接在IE中打开PDF文件的解决方法
- weblogic服务上传word等文件直接打开问题解决 博客分类: web应用服务器 在weblogic上发布的web项目,测试中发现出现当上传word、excel、pdf等文件在下载的时候出现
- java 获取网络文件获取流下载,支持IE火狐 直接下载而不直接打开
- 在java的WEB项目如何防止浏览器直接打开下载的文件
- java 语言运行exe或者直接打开文件(Windows下)