itextsharp生成pdf后的直接打印问题

原文 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>
希望对想和我实现一样功能的朋友有些参考价值.

时间: 2024-10-04 12:24:49

itextsharp生成pdf后的直接打印问题的相关文章

C#使用itextsharp生成PDF文件的实现代码

以下是对在C#中使用itextsharp生成PDF文件的实现代码进行了详细分析介绍,需要的朋友可以过来参考下   项目需求需要生成一个PDF文档,使用的是VS2010,ASP.NET. 网络上多次搜索没有自己想要的,于是硬着头皮到itextpdf官网看英文文档,按时完成任务,以实用为主,共享一下:使用HTML文件创建PDF模板:使用自定义字体的一种方法: 复制代码 代码如下:                 FontFactory.Register(System.Web.HttpContext.

jsPDF生成pdf后在网页展示实例

 本文为大家介绍下jsPDF生成pdf后如何在网页展示,下面有个不错示例,大家可以参考下 代码如下: <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=GBK">  <title>jsPDF</title>  <script type="text/javascript" src=&

jasperreport-使用ireport生成pdf后字体大小失效

问题描述 使用ireport生成pdf后字体大小失效 在ireport中编辑了一个报表模板,编译成.jasper文件后在项目中生成报表文件,但是渲染后的报表文件中的字体大小全部失效,其他均正常.请大神不吝指点.以下几点是小弟调查过后已经做过的.1. 已经将itextAsian加入到ireport的classpath中.2. 所需字体也已导入到ireport以及项目中. 多谢! 解决方案 ireport不清楚 我用finereport,目前在finereport设计器中能够选择的字体是系统安装的字

iTextSharp生成PDF问题

问题描述 使用iTextSharp生成PDF时候,如果生成的像素尺寸大于14400就会出现以上异常Thepagesizemustbesmallerthan14400by14400不知是我的iTextSharp版本问题还是什么问题,请各位大神帮忙解答一下. 解决方案 解决方案二:iTextSharp生成时可以指定PageSize的,如PageSize.A4.解决方案三:我是指定大小的,不过一超过14400就会出现异常

Winform 生成PDF后如何自动打开

问题描述 如题,winform生成PDF后,如何自动打开?假如说我选择生成到桌面,生成后让这个PDF是打开的,应该怎么实现,代码怎么写 解决方案 解决方案二:Process.Start("xxxx.pdf"); 解决方案三:引用1楼shingoscar的回复: Process.Start("xxxx.pdf"); XXXX里面怎么换成我生成时起的名字啊解决方案四:1楼说的不管用,我在桌面随便建了个txt用这个方法都打不开,错误信息是找不到指定文件解决方案五:引用3楼

C# iTextSharp 生成 PDF

使用iTextSharp在Asp.Net中操作PDF系列文章 目录 http://www.cnblogs.com/CareySon/category/332146.html 实战 iTextSharp http://www.cnblogs.com/haogj/archive/2011/09/05/2167659.html

jsPDF生成pdf后在网页展示实例_javascript技巧

复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>jsPDF</title> <script type="text/javascript" src="jspdf.js"></script> <s

iTextSharp合并PDF后显示不完全

问题描述 publicvoidmergePDFFiles(List<string>fileList,stringoutMergeFile){PdfReaderreader;Documentdocument=newDocument();PdfWriterwriter=PdfWriter.GetInstance(document,newFileStream(outMergeFile,FileMode.Create));document.Open();PdfContentBytecb=writer.

pdf-iTextSharp 生成PDF时,出现异常:outofmemoryexception

问题描述 iTextSharp 生成PDF时,出现异常:outofmemoryexception 如题,我在用iTextSharp 生成PDF时,Doument对象的Add方法出现异常:outofmemoryexception,内存溢出. 前面我定义了一个document和table: iTextSharp.text.Document document = iTextSharp.text.Document(); iTextSharp.text.Table table = new iTextSha