itextsharp不在乎我的html样式

本文关键字:样式 html 我的 不在乎 itextsharp | 更新日期: 2023-09-27 18:25:13

我在页面中创建一个面板,并在页面中动态创建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>

itextsharp不在乎我的html样式

这里是修复的新代码

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);