C# MigraDoc 边距大小不正确?

C# MigraDoc margins incorrect size?

左边距和顶部边距不是 7 毫米。为什么?

Document document = new Document();

Section sec = document.AddSection();
sec.PageSetup.PageWidth = Unit.FromMillimeter(210);
sec.PageSetup.PageHeight = Unit.FromMillimeter(297);
sec.PageSetup.LeftMargin = Unit.FromMillimeter(7);
sec.PageSetup.TopMargin = Unit.FromMillimeter(7);
sec.PageSetup.RightMargin = Unit.FromMillimeter(7);
sec.PageSetup.BottomMargin = Unit.FromMillimeter(7);

Table table = sec.AddTable();
table.AddColumn(Unit.FromMillimeter(196));

Row row = table.AddRow();
row.HeightRule = RowHeightRule.Exactly;
row.Height = Unit.FromPoint(70);

row.Cells[0].AddParagraph("TABLE TEXT");

Color blackColor = new Color(0, 0, 0);
row.Shading.Color = blackColor;

在结果 PDF 中,左边距为 5.95 毫米,上边距为 6.86 毫米。

image of result PDF

您应该将 table.Rows.LeftIndent 设置为 0。这将增加左边距。

默认情况下,table 中的文本恰好为 7 毫米(在您的情况下)- 因此,如果您从 table 的边缘开始测量,左边距会稍微小一些。

table.Rows.LeftIndent 设置为 0 将使 table 的边缘变为 7 毫米。

也许您必须将 table 边框的宽度设置为 0 才能得到恰好 7 毫米。边框是在两边绘制的,所以边框宽度的一半将从上边距和左边距中减去。