c# - 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;
但是,顶部仍有余量。
解决方案
您将图像添加到标题中 - TopMargin 与标题的内容无关。
将图像添加到文档正文并应用 TopMargin - 或设置 PageSetup 的 HeaderDistance 属性。
顺便说一句:永远不要像在第二行代码中那样修改 DefaultPageSetup。
更新:您可以将图像放置在绝对位置 - 在您的情况下是 (0, 0)。这将适用于标题中的图像以及正文中的图像,并且与边距设置无关。
如果您想尝试绝对定位,未经测试的代码可以帮助您入门:
image2.RelativeHorizontal = RelativeHorizontal.Page;
image2.RelativeVertical = RelativeVertical.Page;
image2.WrapFormat.Style = WrapStyle.Through;
推荐阅读
- android - Facebook 广告错误:您不能为处于 LOADING 状态的广告调用 show()
- ada - 如何将我的 Ada 程序拆分为单独的文件
- tabulator - 制表符 - 可选择在另一列(布尔值)上选择资格,这也是可编辑的刻度交叉
- c++ - 无法从 system::windows::forms::control ^ 转换为 system::windows::forms::webbrowser ^ visual c++
- outlook - Office 加载项:无法在移动设备中加载
- facebook - PSID-Migration 后,PSID 是否会在不同应用[Same Page] 中的用户保持不变?
- javascript - 访问多个参数
- docker - 如何在 Docker Hub 上验证生产 Docker Swarm
- typescript - 如何在 Ionic 4 滚动时更改标签栏上的背景颜色?
- node.js - Node + mongoose:删除模型及其关系中的所有记录