MigraDoc - 如何删除上边距?

MigraDoc - How to remove top margin?

我对从 C# 生成 PDF 还很陌生,我正在使用 MigraDoc。我已经尝试将保证金设置为 0,但似乎保证金仍然存在。

这是代码

Document document = new Document();
document.DefaultPageSetup.TopMargin = 0;

Section section = document.AddSection();

section.PageSetup.PageWidth = "21.7cm";
section.PageSetup.PageHeight = "9cm";
section.PageSetup.TopMargin = "0cm";
section.PageSetup.LeftMargin = "0cm";
MigraDoc.DocumentObjectModel.Shapes.Image image2 = section.Headers.Primary.AddImage("D:\output\sky-690293_640.jpg");
image2.Height = "9cm";
image2.LockAspectRatio = true;
image2.Top = 0;
image2.Left = 0;
image2.WrapFormat.Style = WrapStyle.Through;

但是,上面还是有余量。

Top margin still exist

您将图像添加到页眉 - TopMargin 与页眉的内容无关。

要么将图像添加到文档正文并应用 TopMargin,要么设置 PageSetup 的 HeaderDistance 属性。

顺便说一句:永远不要像在第二行代码中那样修改 DefaultPageSetup。

更新:您可以将图像放置在绝对位置 - 在您的情况下为 (0, 0)。这将适用于页眉中的图像以及正文中的图像,并且与边距设置无关。

如果您想尝试绝对定位,可帮助您入门的未经测试的代码:

image2.RelativeHorizontal = RelativeHorizontal.Page;
image2.RelativeVertical = RelativeVertical.Page;
image2.WrapFormat.Style = WrapStyle.Through;