MigraDoc - 叠瓦/嵌套表格?

MigraDoc - imbricated / nested tables?

我想在另一个 table 中添加一个 table(在特定单元格中)。 我找不到将 Table 对象添加到 Cell 对象的方法。 这根本不可能吗?

或者,我可能会合并一些单元格,但我在 MigraDoc 网站上找不到任何包含单元格合并的示例。

这是我的代码:

Table parentTable = new Table();
parentTable.AddColumn(Unit.FromCentimeter(9));
Row parentRow = parentTable.AddRow();
Cell parentCell = parentRow.Cells[0];

Table currentTable = new Table();
currentTable.AddColumn(Unit.FromCentimeter(4));
Row currentRow = currentTable.AddRow();
currentRow.Cells[0].AddParagraph("blablabla");

parentCell.Add(currentTable); // this does not work

发票示例使用合并:
http://www.pdfsharp.net/wiki/Invoice-sample.ashx

关键词是MergeRight和MergeDown。使用 MergeRight=1 获取跨两列的单元格。

我认为合并是最好的方法,如果它不会变得太复杂的话。

您可以将 TextFrame 添加到 Cell 并将 Table 添加到 TextFrame 以实现嵌套 table。但是,您将不得不处理行高,因为当 TextFrame 的内容增长时,table 单元格不会自动增长。

有一个技巧可以使用通用 Add 方法将 Table 添加到单元格中的 CellParagraph。 将 table 添加到 table 单元格的代码黑客:

parentCell.Elements.Add(currentTable);

这是一个未记录的功能。合并是推荐的方法。

单元格不会换到下一页,因此向单元格添加 tables 仅适用于较小的嵌套 tables。