如何将桌子放在页面中央

本文关键字: | 更新日期: 2023-09-27 18:24:06

使用MigraDoc,我试图在页面的中心放置一个表。我使用的是这个代码(c#,VS)。

Section secondPage = new Section(); 
Table table = new Table();
AddColumns(table);
AddFirstRow(table);
AddSecondRow(table);
table.Format.Alignment=ParagraphAlignment.Center;
secondPage.Add(table);

我得到一张与页面右侧对齐的表格;我怎样才能在页面中央找到一张桌子?

如何将桌子放在页面中央

将表格置于节的中心。

table.Rows.Alignment = RowAlignment.Center;

您可以设置表格。Rows.LeftIndent以缩进表格。要获得居中的表格,请根据纸张大小、页边距和表格宽度计算缩进量。

示例:纸张大小为A4(21厘米宽),左右边距各为2.5厘米。因此,我们有一个16厘米的页面主体。
要使12厘米宽的桌子居中,请使用table。Rows.LeftIndent必须设置为2厘米(16厘米的正文宽度减去12厘米的表格宽度,得到4厘米的剩余空间-剩余空间的一半必须设置为LeftIndent)
从原始问题中的代码片段中,删除table.Format.Alignment=ParagraphAlignment.Center;并将其替换为table.Rows.LeftIndent="2cm";

请注意,如果表格比正文稍宽,但仍在页面边缘内,这也会起作用。使用前面示例中的页面设置,18厘米宽的表格可以以-1厘米的LeftIndent居中。

示例代码(表中只有一列):

var doc = new Document();
var sec = doc.AddSection();
// Magic: To read the default values for LeftMargin, RightMargin &c. 
// assign a clone of DefaultPageSetup.
// Do not assign DefaultPageSetup directly, never modify DefaultPageSetup.
sec.PageSetup = doc.DefaultPageSetup.Clone();
var table = sec.AddTable();
// For simplicity, a single column is used here. Column width == table width.
var tableWidth = Unit.FromCentimeter(8);
table.AddColumn(tableWidth);
var leftIndentToCenterTable = (sec.PageSetup.PageWidth.Centimeter - 
                               sec.PageSetup.LeftMargin.Centimeter - 
                               sec.PageSetup.RightMargin.Centimeter -
                               tableWidth.Centimeter) / 2;
table.Rows.LeftIndent = Unit.FromCentimeter(leftIndentToCenterTable);
table.Borders.Width = 0.5;
var row = table.AddRow();
row.Cells[0].AddParagraph("Hello, World!");

示例代码使用厘米进行计算。您也可以使用英寸、毫米、皮卡或点。默认页面大小为A4,示例中的LeftIndent将为4厘米。

相关文章:
  • 没有找到相关文章