【发布时间】:2018-06-14 21:38:46
【问题描述】:
我正在使用 iTextSharp.dll 将我的页面打印为 pdf。我遇到的唯一问题是 pdf 显示了我在页面上的 CSS 和 JavaScript。有没有办法可以将 iTextSharp 设置为 不 显示 CSS/JS?
是的,我将我的 CSS/JS 直接输入到 .aspx 页面中——因为这是一个小项目。当然,对于一个大型项目,我会将其分开。
编辑
这是我当前写入页面的语法
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
this.Page.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(iTextSharp.text.PageSize.A4.Rotate(), 10, 10, 10, 10);
pdfDoc.SetPageSize(iTextSharp.text.PageSize.A4);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
【问题讨论】:
-
虽然您没有共享任何代码,但很明显您使用的是过时的
HTMLWorker类。您描述的问题(CSS 语法在 PDF 文件中可见的事实)与 here 描述的问题之一完全相同。 -
@BrunoLowagie - 我的错误,我以为我包含了我的 C# 语法。我已经更新了我的帖子以包含此类内容。令人印象深刻的是,您可以看出我正在使用该课程。
-
这并不令人印象深刻,因为这是一个已知问题,已通过丢弃
HTMLWorker并用更好的东西替换它来解决。