Как изменить размер таблицы по ширине страницы в 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;