Migradoc Header with table

c#, migradoc

Solution

If you want to have the same header on every page: Use `section.Headers.Primary.AddTable()` instead of `section.Headers.Primary.AddParagraph()`.

By setting `row.HeadingFormat = true;` for the first n rows of your table, you mark this rows as header rows. When the table grows and breaks over several pages, the header rows will be repeated on every page (but in the "normal" page body, not the header area). This is the typical usage of heading rows. If you don't add other rows to your header table, HeadingFormat = true will not have any effect.

Problem

I can make a header in Migradoc like this: ``` //Create Header Paragraph paragraph = section.Headers.Primary.AddParagraph(); paragraph.AddText("Roto"); paragraph.Format.Font.Size = 9; paragraph.Format.Alignment = ParagraphAlignment.Center; ``` And I can make make a simple table like this: ``` // Create the HEADER table for the top of every page this.table = section.AddTable(); this.table.Style = "Table"; this.table.Borders.Color = TableBorder; this.table.Borders.Width = 0.25; this.table.Borders.Left.Width = 0.5; this.table.Borders.Right.Width = 0.5; this.table.Rows.LeftIndent = 0; Column column = this.table.AddColumn("8cm"); column.Format.Alignment = ParagraphAlignment.Center; column = this.table.AddColumn("8cm"); column.Format.Alignment = ParagraphAlignment.Center; // Create the header of the table Row row = table.AddRow(); //row = table.AddRow(); row.HeadingFormat = true; row.Format.Alignment = ParagraphAlignment.Center; row.Format.Font.Bold = true; row.Shading.Color = TableBlue; row.Cells[0].AddParagraph("Rotary"); row.Cells[0].MergeRight = 1; row = table.AddRow(); row.HeadingFormat = true; row.Format.Alignment = ParagraphAlignment.Center; row.Format.Font.Bold = true; row.Shading.Color = TableBlue; row.Cells[0].AddParagraph("Part No.:"); row.Cells[0].Format.Alignment = ParagraphAlignment.Left; row.Cells[1].AddParagraph("Tested by:"); row.Cells[1].Format.Alignment = ParagraphAlignment.Left; row = table.AddRow(); row.Cells[0].MergeRight = 1; ``` How do I get the table into the header so it appears at the top of every page? EDIT: So to make it work I changed: ``` this.table = section.AddTable(); ``` to: ``` this.table = section.Headers.Primary.AddTable(); ```

Original source