我正在开发一个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的后台进程。怎么做?请分享一些代码。
答案 0 :(得分:0)
仅从ASP.NET中就无法触发它在客户端自动打印。您可以做的最好的事情是弹出打印对话框。也许这对你的用例来说足够好了。请参阅此答案:https://stackoverflow.com/a/9639241/94853