1、鼠标右键点击电脑桌面任意位置,选择新建。
2、点击文本文档。
3、双击打开新建的文本文档。
4、在文档内输入想要查询的文档即可。
在不需要使用插件,直接打开通过链接方式打开
<%@ page language="java" import="javautil,javaio"pageEncoding="UTF-8"%>
<%
String path = requestgetContextPath();
String basePath = requestgetScheme() + "://"
+ requestgetServerName() + ":" + requestgetServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 401 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
</head>
<%
outclear();
out = pageContextpushBody();
responsesetContentType("application/pdf");
try {
String strPdfPath = new String("D://200701010001PDF");
//判断该路径下的文件是否存在
File file = new File(strPdfPath);
if (fileexists()) {
DataOutputStream temps = new DataOutputStream(response
getOutputStream());
DataInputStream in = new DataInputStream(
new FileInputStream(strPdfPath));
byte[] b = new byte[2048];
while ((inread(b)) != -1) {
tempswrite(b);
tempsflush();
}
inclose();
tempsclose();
} else {
outprint(strPdfPath + " 文件不存在!");
}
} catch (Exception e) {
outprintln(egetMessage());
}
%>
<body>
<br>
</body>
</html>
如果访问者的计算机上没有装acrobat reader,直接用iframe或者直接用链接打开,那就不是打开文档,而是直接下载了,为了防止下载,想像到媒体文件的播放方式,加上一些官方的docs,考虑用用object标签使用pdf插件嵌入ie中
<HTML><HEAD>
<META ;
在网页中直接显示pdf格式的文件方便阅读。但是如果文件较大加载速度会很慢,另外如果客户端没有安装pdf阅读插件的话,也就看不了了,不过还是贴出来了,各取所需吗。(1pdf要改成自己的pdf文件路径插入到页面文件中)
Html代码<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" 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="1pdf">
</object>
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" 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="1pdf">
</object>
标准浏览器中:
Java代码
<object data="1pdf" type="application/pdf" width="300" height="200">
alt : <a href="1pdf">testpdf</a>
</object>
<object data="1pdf" type="application/pdf" width="300" height="200">
alt : <a href="1pdf">testpdf</a>
</object>
IE70以上版本的浏览器中可用如下方法,低版本的IE会显示两个Object区域
Java代码
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" 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="1pdf">
<object data="1pdf" type="application/pdf" width="300" height="200">
alt : <a href="1pdf">testpdf</a>
</object>
</object>
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" 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="1pdf">
<object data="1pdf" type="application/pdf" width="300" height="200">
alt : <a href="1pdf">testpdf</a>
</object>
</object>
低版本浏览器中的处理方法1:
Java代码
<!--[if IE]>
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" 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="1pdf">
</object>
<![endif]-->
<!--[if !IE]> <!-->
<object data="1pdf" type="application/pdf" width="800" height="1050">
alt : <a href=';
以上文章转自 >具体是这样的,我们现在在开发一个项目,其中有个功能是将用户填写的报表在线生成pdf下载,是通过流直接输出到用户的电脑里,服务器上不会存在生成的pdf文件,但是现在有一个问题,因为pdf文件页数是不确定的,所以在每一页加水印现在无法实现,请问怎样弄才能实现这一功能?我之前的思路是这样的,在生成pdf的java代码最后加个循环,通过得到document的页数然后用pdfContentByte在每一页加水印,但是我没找到可以定位到第几页的方法。部分代码:Java code responsesetContentType("text/html;charset=GBK");
responsesetContentType("application/pdf");
responsesetHeader("Content-Disposition", "attachment;filename="
+ fileName + "pdf");
OutputStream outs = responsegetOutputStream(); // 获取输出流
PdfWriter writer = PdfWritergetInstance(doc, outs);
documentopen();
PdfContentByte under = writergetDirectContentUnder();
Java code//添加水印
underbeginText();
undersetColorFill(BaseColorLIGHT_GRAY);
undersetFontAndSize(bfTitle, 100);
undersetTextMatrix(70, 0);
int rise = 200;
for (int k = 0; k <waterMarkNamelength(); k++) {
undersetTextRise(rise);
char c = waterMarkNamecharAt(k);
undershowText(c + " ");
rise += 100;
}
underendText();
documentclose();//关闭
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)