0
我正在開發一個ASP.NET Web窗體應用程序,其中我必須生成pdf並在客戶端打印它。我的朋友給出了這段代碼:在服務器端生成PDF並使用itextsharp.dll在客戶端打印它
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不應該寫爲'響應',而應該寫成內存流並作爲Adobe Reader的後臺進程打印。怎麼做?請分享一些代碼。
檢查出來:)它可能會幫助你:) http://stackoverflow.com/questions/8294057/how-to-open-pdf-file-in-a-new-tab- or-window-instead-of-downloading-it-using-asp – Jonny
由於PDF查看器需要磁盤上的文件才能呈現,因此無法阻止文檔被下載。見http://stackoverflow.com/questions/22880444/disable-save-button-in-adobe-pdf-reader-and-hide-menu-bar-in-ie-window –
你不能「強制打印」一個PDF文件下載到客戶端,因爲這被認爲是一個安全隱患:http://stackoverflow.com/questions/26751910/print-pdf-created-using-itextsharp –