c# - itextsharp 不关心我的 html 样式

标签 c# asp.net itextsharp

我在页面中创建了一个面板,并在页面中动态创建了 div 和表格。当我使用 itextsharp 转换为 pdf 时,它不关心我的 div 或表格样式,它让我看起来很讨厌。 我怎样才能解决这个问题。 这是我转换 html 的代码。

String HTML = Session["xpdf"].ToString();
string filename = "\\xpdf\\xpdf____" + Request.QueryString["id"] + ".pdf";
string filepath = HttpContext.Current.Server.MapPath("\\xpdf\\xpdf____" + Request.QueryString["id"] + ".pdf");
Document document = new Document(PageSize.A4);
PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create));
document.Open();
HTMLWorker hw = new HTMLWorker(document);
hw.Parse(new StringReader(HTML));
document.Close();
ShowPdf(filename, filepath);
PdfAction action = new PdfAction(PdfAction.PRINTDIALOG);

考虑一下我的 html 代码是这样的:

<div>
   <table style="border:solid 1px #ccc; color:#000;">
      <tr>
          <td style="width:100px;color:#cc0000;"></td>
          <td style="width:10px">:</td>
          <td style="width:200px"></td>
      </tr>
   </table>
</div>

最佳答案

这是固定的新代码。

Document document = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create));
document.Open();
HTMLWorker hw = new HTMLWorker(document);
StringReader sr = new StringReader(HTML);
XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, sr);
//hw.Parse(new StringReader(HTML));
document.Close();
ShowPdf(filename, filepath);
PdfAction action = new PdfAction(PdfAction.PRINTDIALOG);

关于c# - itextsharp 不关心我的 html 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17918642/

相关文章:

asp.net - 我可以使用 HttpHandler 伪造 aspx 页面的存在吗?

excel - 如何在itextSharp(dll)中保留原始旋转页面

c# - 如何使用 ITextSharp.dll 在 C# 中屏蔽图像?

c# - 为什么 C# 泛型不能像在 C++ 模板中那样从泛型类型参数之一派生?

c# - 如何使用 C# 从字节数组为 WPF 媒体元素创建源?

c# - 在 Owin 中间件中重写响应

asp.net - IIdentityMessageService 的 SendAsync 方法内的 null HttpContext

c# - 是否可以在 Java 或 C# 中实例化泛型类型的对象?

asp.net - 我对 Html.TextBoxFor 的工作原理有什么误解

c# - iTextSharp - 在添加到列之前计算短语/段落高度