Как изменить размер таблицы по ширине страницы в PDFsharp?

Я пытаюсь изменить размер таблицы автоматически до полной ширины страницы. Эта таблица должна иметь 2 столбца шириной 50% каждый.

Как мне этого добиться? Я попробовал свойства LeftIndent и RightIndent без удачи.

3 ответа

Вот подход, который избегает жесткого кодирования ширины и допускает более гибкие форматы бумаги. Не забудьте включить using MigraDoc.DocumentObjectModel; утверждение в вашем классе.

Document document = new Document();

Section section = document.AddSection();
section.PageSetup.PageFormat = PageFormat.A4;

Table table = section.AddTable();

float sectionWidth = section.PageSetup.PageWidth - section.PageSetup.LeftMargin - section.PageSetup.RightMargin;
float columnWidth = sectionWidth / 2;

Column column = table.AddColumn();
column.Width = columnWidth;
Column column2 = table.AddColumn();
column2.Width = columnWidth;

Row row = table.AddRow();
row.Cells[0].AddParagraph("Row 1, Column A");
row.Cells[1].AddParagraph("Row 1, Column B");

Вы не можете использовать процентные значения с MigraDoc.
Вы можете установить абсолютную ширину каждого столбца.

Таким образом, при использовании DIN A4 с полем 2,5 см с каждой стороны у вас остается 16 см для стола, и поэтому вам нужно создать две колонки по 8 см в каждой.

Вы можете установить левый отступ таблицы для горизонтального перемещения таблиц.

Если ответ от Kidquick не работает, используйте document.DefaultPageSetup:

document.DefaultPageSetup.PageFormat = PageFormat.A4;

int sectionWidth = (int)document.DefaultPageSetup.PageWidth - (int)document.DefaultPageSetup.LeftMargin - (int)document.DefaultPageSetup.RightMargin;

Table table = section.AddTable();
table.AddColumn(sectionWidth);
Row row = table.AddRow();
row.Height = 60;
Другие вопросы по тегам