Mar*_*ina 3 c# pdf-generation migradoc
使用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);
Run Code Online (Sandbox Code Playgroud)
我得到一个与页面右侧对齐的表格; 如何在页面中心获取表格?
Jas*_*noy 11
将一个表格置于一个区域的中心.
table.Rows.Alignment = RowAlignment.Center;
Run Code Online (Sandbox Code Playgroud)
您可以设置table.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!");
Run Code Online (Sandbox Code Playgroud)
示例代码使用厘米进行计算.您还可以使用英寸,毫米,皮卡或点.默认页面大小为A4,在样本中,LeftIndent为4厘米.
| 归档时间: |
|
| 查看次数: |
3496 次 |
| 最近记录: |