编程语言
首页 > 编程语言> > c# – MigraDoc – imbricated / nested表?

c# – MigraDoc – imbricated / nested表?

作者:互联网

我想在另一个表(在特定单元格内)中添加一个表.
我找不到将一个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

解决方法:

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

关键字是MergeRight和MergeDown.使用MergeRight = 1获取跨越两列的单元格.

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

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

有一种技巧可以使用通用的Add方法将表添加到单元格中的Cell或Paragraph.
代码破解,将表添加到表格单元格:

parentCell.Elements.Add(currentTable);

这是一个没有记录的功能.合并是推荐的方法.

单元格不会中断到下一页,因此向单元格添加表格仅适用于小型嵌套表格.

标签:c,pdfsharp,migradoc
来源: https://codeday.me/bug/20190715/1465738.html