MigraDoc - вложенные / вложенные таблицы?
Я хотел бы добавить таблицу внутри другой таблицы (внутри определенной ячейки). Я не могу найти способ добавить 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
1 ответ
Пример счета-фактуры использует слияние:
http://www.pdfsharp.net/wiki/Invoice-sample.ashx
Ключевые слова: MergeRight и MergeDown. использование MergeRight=1
чтобы получить ячейку, которая охватывает два столбца.
Я думаю, что слияние - лучший подход, если оно не становится слишком сложным.
Можете добавить TextFrame
к Cell
и добавить Table
к TextFrame
для достижения вложенных таблиц. Однако вам придется иметь дело с высотой строки, поскольку ячейка таблицы не будет автоматически увеличиваться при увеличении содержимого TextFrame.
Есть хитрость, чтобы добавить Table
к Cell
или же Paragraph
в клетке, используя общий Add
метод. Взлом кода, который добавляет таблицу в ячейку таблицы:
parentCell.Elements.Add(currentTable);
Это недокументированная функция. Слияние является рекомендуемым подходом.
Ячейки не переходят на следующую страницу, поэтому добавление таблиц в ячейки будет работать только для небольших вложенных таблиц.