第一种:
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);
}
&n