首页 > 解决方案 > MigraDoc - 如何删除上边距?

问题描述

我对从 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;

但是,顶部仍有余量。

顶边距仍然存在

标签: c#pdfsharpmigradoc

解决方案


您将图像添加到标题中 - TopMargin 与标题的内容无关。

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

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

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

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

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

推荐阅读