我正在尝试自动调整表格的宽度以充满整个页面。该表格应该有两列,每列占50%的宽度。
我该如何实现这一目标?我尝试使用LeftIndent和RightIndent属性,但没有成功。
using MigraDoc.DocumentObjectModel;
语句。Document document = new Document();
Section section = document.AddSection();
section.PageSetup = document.DefaultPageSetup.Clone();
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");
section.PageSetup.PageFormat = PageFormat.A4;
之前添加section.PageSetup = document.DefaultPageSetup.Clone();
。 - Jinjinov在MigraDoc中不能使用百分比值。
您可以设置每列的绝对宽度。
因此,在每侧有2.5厘米边距的DIN A4纸张上,您还剩下16厘米用于表格,所以您需要创建两个8厘米宽的列。
您可以设置表格的左缩进来水平移动表格。
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;
DefaultPageSetup
不应该被直接修改。可以通过复制 DefaultPageSetup
得到一个新的副本,并将其赋值给会话的 PageSetup
,然后根据需要对其进行修改。 - I liked the old Stack Overflow