itextsharp生成pdf后的直接打印问题
小弟这两天用itextsharp生成pdf文档,生成的pdf可以直接保存在指定路径的文件夹下,可是user不想保存,想要点一下button,就可以直接打印,我搞了半天也没找到合适的方法,还希望有做过这方面的,给些建议.多谢多谢啦
我的代码是这样的: iTextSharp.text.Rectangle page = new Rectangle(683,850);
iTextSharp.text.Document document = new iTextSharp.text.Document(page, 71, 43, 60, 28);
try
{
// and directs a PDF-stream to a file
PdfWriter.GetInstance(document, new FileStream("C:\\" + DateTime.Now.ToString("yyyyMMdd") +
".pdf", FileMode.Create));
document.Open();
//我增加的文档内容部分
}
catch (Exception e)
{
}
// close the document
document.Close();
}
解决方法:
我把我的解决办法也贴出来吧,
1,把生成PDF文档到MemoryStream.
MemoryStream pdfdata = new MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(document, pdfdata);
2,在PdfWriter中加javescript.
StringBuilder script = new StringBuilder();
script.Append("this.print({bUI: true,bSilent: true,bShrinkToFit: false});");
writer.ViewerPreferences = PdfWriter.HideMenubar | PdfWriter.HideToolbar | PdfWriter.HideWindowUI;
writer.AddJavaScript(script.ToString());
3,输出到客户端缓存.
protected void submit_Click(object sender, EventArgs e)
{
MemoryStream PDFData =1中的返回值;
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.Charset = string.Empty;
Response.Cache.SetCacheability(System.Web.HttpCacheability.Public);
Response.AddHeader("Content-Disposition",
"inline; filename=" + Title.Replace(" ", "").Replace(":", "-") + ".pdf");
Response.OutputStream.Write(PDFData.GetBuffer(), 0, PDFData.GetBuffer().Length);
Response.OutputStream.Flush();
Response.OutputStream.Close();
}
4,我在页面上放一个iframe(width=0,height=0),就是让他不可见,让pdf文档在他下面打开,就会执行打印动作.
<form id="form1" runat="server" target="iframe1">
<div><center>
<br />
<asp:Button ID="submit" runat="server" OnClick="submit_Click" Text="Print PO" />
</center></div>
</form>
<iframe name="iframe1" width="0" height="0">
</iframe>
希望对想和我实现一样功能的朋友有些参考价值.
itextsharp生成pdf后的直接打印问题的更多相关文章
- iTextSharp生成PDF文件
这是一篇简单的教程,所以只涉及一些iTextSharp生成pdf的简单应用,详细教程请搜索iTextSharp进入官网看官方文档(英文版). iTextSharp官方文档:https://itextp ...
- iTextSharp生成pdf的一个简单例子
效果图: 参考:http://www.cnblogs.com/CareySon/archive/2011/11/09/2243496.html http://www.cnblogs.com/julyl ...
- C#使用itextsharp生成PDF文件
项目需求需要生成一个PDF文档,使用的是VS2010,ASP.NET. 网络上多次搜索没有自己想要的,于是硬着头皮到itextpdf官网看英文文档,按时完成任务,以实用为主,共享一下: 使用HTML文 ...
- iTextSharp生成pdf含模板(二)---C#代码部分
参考地址:https://www.cnblogs.com/ibeisha/p/itextsharp-pdf.html 一.先在程序中使用Nuget安装iTextSharp(我是创建的控制台程序) 二. ...
- iTextSharp生成pdf文档案例
1.using iTextSharp.text;using iTextSharp.text.pdf; 2.设置页面大小 iTextSharp.text.Rectangle pageSize = new ...
- itextsharp生成pdf
itextsharp在ios中可用,亲测 (一)生成文档 Document document = , , , ), , , , ); //Document document = new Documen ...
- .Net iTextSharp 生成pdf
拿别人例子 public ActionResult index() { var ms = new MemoryStream(); #region CreatePDF Document document ...
- 利用ItextSharp 生成PDF文档改进版
导入的ItextSharp.dll一定要是较高的版本 数据库表结构 生成的PDF样式 代码: namespace WebPDF { public partial class _Default : Sy ...
- iTextSharp 合并PDF后,无法删除已经合并的单个文件
private void MergePDFFiles(string[] fileList, string outMergeFile) { List<PdfReader> readerLis ...
随机推荐
- C3P0连接池参数解释
<!--acquireIncrement:链接用完了自动增量3个. --> <property name="acquireIncrement">3</ ...
- C++学习之虚继承
http://blog.csdn.net/wangxingbao4227/article/details/6772579 C++中虚拟继承的概念 为了解决从不同途径继承来的同名的数据成员在内存中有不同 ...
- java覆写equals方法
何时需要重写equals() 当一个类有自己特有的“逻辑相等”概念(不同于对象身份的概念). object规范规定,如果要重写equals(),也要重写hashcode() 如何覆写equals() ...
- jquery 中多个存在依赖关系的ajax调用解决办法
在使用ajax异步调用的时候,可能碰到同时调用多个ajax这种情况.而且多个ajax之间还存在依赖关系.这种情况怎么处理呢? 有两种办法: 一种是多个ajax嵌套调用,这时需要设置async为fa ...
- ViewFilpper
package com.example.suneyaenews; import java.util.ArrayList; import java.util.HashMap; import java.u ...
- Windows下搭建objective C开发环境
摘自:http://blog.csdn.net/zhanghefu/article/details/18320827 最近打算针对iPhone.iPod touch和iPad开发一些应用,所以,需要开 ...
- 使用wget -i下载多个文件
使用wget -i下载多个文件 命令: wget -i filelist.txt 说明: 首先,保存一份下载链接文件 cat > filelist.txt url1 url2 url3 url4
- MyEclipse中spring MVC的配置
---恢复内容开始--- web.xml配置: <?xml version="1.0" encoding="UTF-8"?> <web-app ...
- python2.5_1.5_通过指定的端口和协议找到服务名
代码如下: # -*- coding: utf-8 -*- import socket def find_service_name(): protocolname = 'tcp' for port i ...
- Shell Script(1)----variable compare
PS:在学习python的时间里,抽空复习自己学习的Linux下的shell脚本知识点 1.数据类型 学习一门语言,比较关心其数据的表示方式,以及数据的类型,这里首先看一个bash shell的脚本 ...