您的位置:首页 > 编程语言 > Java开发

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、存在保存、复制等泄密功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: