如何在MigraDoc中将表格大小调整为页面宽度?

问题描述 投票:12回答:3

我试图自动调整表格的大小到页面的整个宽度。该表应该有2列,每列50%。

我怎样才能做到这一点?我没有运气就尝试了LeftIndent和RightIndent属性。

c# pdfsharp migradoc
3个回答
22
投票

这是一种避免硬编码宽度并允许更灵活的纸张格式的方法。确保在您的班级中包含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");

2
投票

您不能将百分比值与MigraDoc一起使用。 您可以设置每列的绝对宽度。

因此,当使用DIN A4,每边有2.5厘米的边距时,你还有16厘米的桌子,所以你必须创建两个8厘米的柱子。

您可以设置表格的左缩进以水平移动表格。


0
投票

如果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;
© www.soinside.com 2019 - 2024. All rights reserved.