在服务器端生成PDF并使用itextsharp.dll在客户端打印

时间:2015-01-08 07:16:27

标签: c# asp.net pdf itextsharp

我正在开发一个ASP.NET Web表单应用程序,我必须生成pdf并在客户端打印它。我的朋友给了这段代码:

        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", a);
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        n.RenderControl(hw);
        deg.RenderControl(hw);
        n.RenderControl(hw);
        StringReader sr = new StringReader(sw.ToString());
        Document pdfDoc = new Document(PageSize.A4, 70f, 70f, 70f, 70f);
        HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
        PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
        pdfDoc.Open();
        pdfDoc.NewPage();

        htmlparser.Parse(sr);
        pdfDoc.Close();

        Response.Write(pdfDoc);
        Response.End();

此代码生成pdf,但会在客户端自动下载。我不希望它被下载,而是直接在客户端打印。

我不知道如何继续进行,但我认为pdf不应该写成'Response'而应该写为内存流并打印为adobe reader的后台进程。怎么做?请分享一些代码。

1 个答案:

答案 0 :(得分:0)

仅从ASP.NET中就无法触发它在客户端自动打印。您可以做的最好的事情是弹出打印对话框。也许这对你的用例来说足够好了。请参阅此答案:https://stackoverflow.com/a/9639241/94853