2016-03-30 27 views
2

Ich möchte eine Tabelle in einer anderen Tabelle (innerhalb einer bestimmten Zelle) hinzufügen. Ich kann keinen Weg finden, ein Table Objekt zu einem Cell Objekt hinzuzufügen. Ist das einfach unmöglich?MigraDoc - verschachtelte/verschachtelte Tabellen?

Alternativ kann ich einige Zellen zusammenführen, aber ich kann keine Probe in MigraDoc Website mit Zellen zusammenführen finden.

Hier ist mein Code:

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 

Antwort

6

Die Probe Rechnung verwendet verschmelzenden:
http://www.pdfsharp.net/wiki/Invoice-sample.ashx

Die Schlüsselwörter sind MergeRight und MergeDown. Verwenden Sie MergeRight=1, um eine Zelle zu erhalten, die sich über zwei Spalten erstreckt.

Ich denke, das Zusammenführen ist der beste Ansatz, wenn es nicht zu kompliziert wird.

Sie können TextFrame zu einem Cell hinzufügen und Table zu einem TextFrame hinzufügen, um geschachtelte Tabellen zu erreichen. Allerdings müssen Sie sich mit der Zeilenhöhe befassen, da die Tabellenzelle nicht automatisch wächst, wenn der Inhalt des TextFrames wächst.

Es gibt einen Trick, um eine Table zu einer Cell oder Paragraph in einer Zelle mit der generischen Add Methode hinzuzufügen. -Code-Hack, die eine Tabelle zu einer Tabellenzelle fügt hinzu:

parentCell.Elements.Add(currentTable); 

Dies ist eine nicht dokumentierte Funktion. Zusammenführen ist der empfohlene Ansatz.

Zellen brechen nicht auf die nächste Seite auf. Das Hinzufügen von Tabellen zu Zellen funktioniert daher nur für kleine verschachtelte Tabellen.

+0

Es funktioniert gut. Funktioniert auch mit TextFrame. Danke dafür und der Link zum Rechnungsbeispiel! – olivier

+0

+1 für den Trick "Elemente". Wäre es schön, eine .AddTable() - Kurzschrift in Zellen zu haben, um Verwirrung zu vermeiden – Farlop

Verwandte Themen