溜溜问答 > 日常办公 > PDF > JAVAsCRipt 打印网页成PDF文件
高傑西
高傑西
邀请你来回答
45人阅读 2022-03-10

JAVAsCRipt 打印网页成PDF文件

就是将jsp页面打印成PDF文件有源码的更好谢谢
我要回答
1个回答

通过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);
}

如题:






在 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 copy = new PdfCopy(document, baos);

//隐藏工具栏并给pdf加密
copy.setViewerPreferences(PdfWriter.HideMenubar | PdfWriter.HideToolbar);
copy.setEncryption(false, null, "pdf", PdfWriter.AllowAssembly);

//往pdf中写入内容
document.open();
for(int i = 1; i <= n; i++) {
PdfImportedPage page = copy.getImportedPage(reader, i);
copy.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阅读器的情况下,浏览器会直接提示用户是否下载,这也是和需求不符的。

最后经过不懈努力,找到了一个用曲线救国的路线,哈哈,先来看看如下代码:



















复制代码

其中sytle的是用一种比较bt的办法影藏了pdf顶部的工具栏(可以用第一种方法,这个方法作为备用)。

这样即使用ie菜单栏中的保存功能也只是保存网页布局而不会把pdf保存下来。

另外这样即使本地没装pdf阅读器也不会让你下载该pdf了,而只是在相应位置出现叉叉而已。基本能够满足客户的需求了

查看全部
2022-03-10
回复 采纳

相关问题

如何把要打印的网页导出成PDF文件?
共3条回答 >
: 1、首先用chrome浏览器打开一个网页,如图所示。2、然后用鼠标右击此网页,在右键菜单中点击“打印”选项。3、然后在出现的窗口中,将目标打印机设置为“另存为PDF”。4、然后点击“保存”按钮,如图所示。5、然后在出现的窗口中,点击保存按钮。6、完成以上设置后,即可把要打印的网页导出成PDF文件。
(22) 回复
求助:PDF 网页打印
共3条回答 >
Feign丶微笑: 你在讲什么啊?
回复
如何打印网页PDF文件?
共1条回答 >
入怀: 1、安装一个PDF打印机,如novaPDF或PDFCReator等;2、点击网页“文件”菜单、选页面设置,选PDF打印机,等等;3、点击网页“文件”菜单、选“打印”即可一路操作。
回复
怎么把打印文件保存成PDF?
共1条回答 >
YIS 1394: 使用WPS打开这个文件,然后选择另存为。再选择保存类型为PDF文件,最后点击保存.这样就把文档保存为PDF文档了。
回复
为什么网页不能打印成PDF文件?
共1条回答 >
W guanghui: 在网页的页面上点击“文件”—“打印预览”—“页面设置”,勾选“打印背景颜色和图像”,点击“确定”即可。
(5) 回复
发表成功!
感谢您的分享!
好的
官方微信群

(微信添加“妙妙”或“笑笑”,邀您进群)