5

我正在使用 iTextSharp 为 ASP.NET 应用程序生成 PDF,PDF 生成似乎工作正常,尽管我发现 iTextSharp 使用起来有点不直观,但这是另一回事。

我正在将数据放入我的 PDF 中的表格中,现在我想将 HTML 内容放入表格单元格中并让它保持格式/样式。我已经看到很多示例展示了如何使用 iTextSharp 将 HTML 解析为 PDF 并保持格式,但是这些示例都将内容直接吐出到文档对象中,例如。doc.addElement() 我尝试调整代码以将解析的 HTML 内容吐出到表格单元格中,例如。代替...

objects = HTMLWorker.ParseToList(new StringReader(htmlString), styles);
for (int k = 0; k < objects.Count; ++k)
{
    document.Add((IElement) objects[k]);
}

我正在使用...

Cell cell = new Cell();

objects = HTMLWorker.ParseToList(new StringReader(htmlString), styles);
for (int k = 0; k < objects.Count; ++k)
{
    cell.Add((IElement) objects[k]);
}

table.AddCell(cell);
document.Add(table);

但是,它将数据放入表格单元格中,所有格式都正确,但所有内容都重叠并相互重叠,而不是间隔开。有什么我做错了吗。

上面的代码示例来自这个网站http://blog.rubypdf.com/2007/10/10/using-htmlworker-to-parse-html-snippets-and-convert-to-pdf/

注意:我不想维护 CSS 样式,只是<h1>大致看起来像<h1>通常的样子等。

4

2 回答 2

3

使用PdfPTable & PdfPCell类而不是Table & Cell类。
(我尝试使用 Table/Cell,我得到了与您描述的相同的行为,但使用 PdfPtable/PdfPCell 没问题。)

于 2009-10-08T17:05:45.363 回答
0

对于任何寻找更新答案的人,因为 HTMLWorker 现在是绝对的,请参见下文:

var tableCell= new PdfPCell();
 string styles= "p { text-align: center; }"; 
 foreach (IElement element in XMLWorkerHelper.ParseToElementList(htmlString, styles))
    {
        tableCell.AddElement(element);
    }
table.AddCell(tableCell);
document.Add(table);
于 2016-10-05T07:36:07.417 回答