❶ jsp打开pdf
在jsp中打开pdf的实现原理是在页面上输出adobe reader对象。
<OBJECT type="application/pdf" width=0 height=0 style="display:none">
<DIV id="PDFNotKnown" style="display:none"> </DIV>
</OBJECT>
如果没有安装就要提示:
<DIV id="IfNoAcrobat" style="display:none">
你需要先安装Adobe Reader才能正常浏览文件,请点击<a href=http://get.adobe.com/cn/reader/download/?installer=Reader_11.0_Chinese_Simplified_for_Windowstarget="_blank">这里</a>下载Adobe Reader.
</DIV>
❷ wkhtmltopdf 把jsp转换成pdf输出为什么是空的
因为jsp不是一个静态的网页文件,jsp本质是servlet,所以转成pdf的时候有可能会有问题;
如果您要打印该网页,可以直接右键保存到本地就行了。
❸ jsp页面如何导成pdf格式
先在服务器上生成PDF文件,然后用户通过点击指向PDF文件的超链接选择下载或打开。这是一个思路,或者说是思路之一。本文实现了这个思路,又给出另外一个思路并通过两种途径实现之。
1)直接在服务器上生成PDF文件。
<%@ page import ="com.lowagie.text.*
,com.lowagie.text.pdf.*, java.io.*"%>
<%
String filename =
"PDF"+(new Random()).nextInt()+".pdf" ;
Document document =
new Document(PageSize.A4);
ServletOutputStream out1
= response.getOutputStream();
try{
PdfWriter writer =
PdfWriter.getInstance(document,
new FileOutputStream(filename) );
document.open();
document.add(new Paragraph("Hello World"));
document.close();
}
catch(Exception e){}
%>
上面的程序在服务器上生成了一个静态的PDF文件。显然,每次运行所得的PDF文件的名称应该是独一无二不能有重的。本程序通过随机函数来命名生成的PDF文件。本程序的缺点就是,每次运行都会在服务器上产生一个PDF文件,如果不及时删除,数量会越来越大,这显然是站点维护者所不愿意看到的。
2)将PDF文件通过流的形式输送到客户端的缓存。这样做的好处是不会在服务器上留下任何“遗迹”。
i)直接通过JSP页面生成
<%@
page import="java.io.*,
java.awt.Color,com.lowagie.text.*,
com.lowagie.text.pdf.*"%>
<%
response.setContentType
( "application/pdf" );
Document document = new Document();
ByteArrayOutputStream buffer
= new ByteArrayOutputStream();
PdfWriter writer=
PdfWriter.getInstance( document, buffer );
document.open();
document.add(new Paragraph("Hello World"));
document.close();
DataOutput output =
new DataOutputStream
( response.getOutputStream() );
byte[] bytes = buffer.toByteArray();
response.setContentLength(bytes.length);
for( int i = 0;
i < bytes.length;
i++ )
{
output.writeByte( bytes[i] );
}
%>
ii)通过Servlet生成
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
public void doGet
(HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException
{
Document document =
new Document(PageSize.A4, 36,36,36,36);
ByteArrayOutputStream ba
= new ByteArrayOutputStream();
try
{
PdfWriter writer =
PdfWriter.getInstance(document, ba);
document.open();
document.add(new
Paragraph("Hello World"));
}
catch(DocumentException de)
{
de.printStackTrace();
System.err.println
("A Document error:" +de.getMessage());
}
document.close();
response.setContentType
("application/pdf");
response.setContentLength(ba.size());
ServletOutputStream out
= response.getOutputStream();
ba.writeTo(out);
out.flush();
}
❹ javascript 打印网页成pdf文件
通过javascript实现PDF自动打印(2009-05-08 15:06:05)
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string pdffile = createpdf(false);
iframe1.Attributes.Add("src", pdffile);
}
}
private string createpdf(bool print)
{
try
{
string filename = "Chap0106.pdf";
iTextSharp.text.Document doc = new iTextSharp.text.Document();
PdfWriter writer = iTextSharp.text.pdf.PdfWriter.getInstance(doc, new FileStream(Server.MapPath(filename), FileMode.OpenOrCreate));
doc.Open();
doc.Add(new Paragraph(6, "abcd"));
writer.setViewerPreferences(PdfWriter.HideMenubar | PdfWriter.HideToolbar);
if (print)
{
PdfAction.javaScript("myOnMessage();", writer);
writer.addJavaScript("this.print(true);function myOnMessage(aMessage) {app.alert('Test',2);} var msgHandlerObject = new Object();doc.onWillPrint = myOnMessage;this.hostContainer.messageHandler = msgHandlerObject;");
}
doc.Close();
return filename;
}
catch
{
return "";
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string pdffile = createpdf(true);
iframe1.Attributes.Add("src", pdffile);
}
如题:
<body>
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" name="PDF1" width="760" height="633" border="0">
<param name="SRC" value="01.pdf"/>
</object>
<script language="JavaScript" type="text/javascript">
PDF1.SetShowToolbar(false);
</script>
</body>
在 pdf 文件里加上这样的属性就可以了
如何也通过类似“PDF1.SetShowToolbar(false); ”控制实现禁止对pdf内容的复制、以及打印!!!谢谢
javascript实现PDF自动打印
网页显示pdf文件,禁止保存和打印
1. 用网页打开 PDF文件。
2. 只可以浏览但是不许打印保存。
结果参照顶楼在jsf里实现如下代码:
//Get response
FacesContext faces = javax.faces.context.FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) faces.getExternalContext().getResponse();
//打开源pdf文件
PdfReader reader = new PdfReader("./HelloWorld.pdf");
Document document = new Document(reader.getPageSizeWithRotation(1));
int n = reader.getNumberOfPages();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//将原pdf文件中的内容放入字节流baos中
PdfCopy = new PdfCopy(document, baos);
//隐藏工具栏并给pdf加密
.setViewerPreferences(PdfWriter.HideMenubar | PdfWriter.HideToolbar);
.setEncryption(false, null, "pdf", PdfWriter.AllowAssembly);
//往pdf中写入内容
document.open();
for(int i = 1; i <= n; i++) {
PdfImportedPage page = .getImportedPage(reader, i);
.addPage(page);
}
document.close();
//设置响应类型并将pdf流写入响应
response.setContentType("application/pdf");
response.setContentLength(baos.size());
response.setHeader("Expires", "0");
response.setHeader("Cache-Control",
"must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
ServletOutputStream out = response.getOutputStream();
//将字节流baos中的内容写入响应流
baos.writeTo(out);
out.flush();
faces.responseComplete();
复制代码
以上代码的缺点:
1:加密只能实现打印和修改加密。
2:虽然隐藏了工具栏,但是可以通过快捷键F8来将工具栏显示出来
3:IE菜单栏中自带的保存功能也能将此pdf保存到本地
4:在客户端没有安装pdf阅读器的情况下,浏览器会直接提示用户是否下载,这也是和需求不符的。
最后经过不懈努力,找到了一个用<object></object>曲线救国的路线,哈哈,先来看看如下代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
</head>
<body>
<tr><td>
<p style="margin-top:-45px;margin-bottom:0px;">
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" id="Pdf1" width="100%" height="100%">
<param name="_Version" value="327680">
<param name="_ExtentX" value="2646">
<param name="_ExtentY" value="1323">
<param name="_StockProps" value="0">
<param name="SRC" value="C:\temp.pdf">
</object>
</p>
</td></tr>
</body>
</html>
复制代码
其中sytle的是用一种比较bt的办法影藏了pdf顶部的工具栏(可以用第一种方法,这个方法作为备用)。
这样即使用ie菜单栏中的保存功能也只是保存网页布局而不会把pdf保存下来。
另外这样即使本地没装pdf阅读器也不会让你下载该pdf了,而只是在相应位置出现叉叉而已。基本能够满足客户的需求了
❺ 如何把 JSP 文件转换为PDF文件
只要是可以打印,就可以使用虚拟打印机来处理:
方法一:使用虚拟打印机pdf factory即可,而且其他格式文件只要是能够打印,选择这个虚拟打印机,都可以做成PDF文件,很简单实用;
方法二:用其他虚拟打印机转成PDF文件。
实在不能打印,还可以截屏嘛,然后按照下面的方法做出PDF的:
方法一:使用虚拟打印机pdf factory即可,而且其他格式文件只要是能够打印,选择这个虚拟打印机,都可以做成PDF文件,很简单实用;
方法二:使用FreePic2Pdf软件,进行批量转换;
方法三:用其他虚拟打印机转成PDF文件。