如何减少MigraDoc文档的上边距?

时间:2014-08-22 16:45:31

标签: migradoc

如何减少MigraDoc文档的上边距?

我在文档的右上角添加了一个图像,但文档顶部和图像之间的空间太大。

以下是我设置图片的方式:

Section section = document.AddSection();
Image image = section.AddImage(@"C:\img\mentSmallLogo.png");
image.Height = "1.5cm";
image.Width = "4cm";
image.LockAspectRatio = true;
image.RelativeVertical = RelativeVertical.Line;
image.RelativeHorizontal = RelativeHorizontal.Margin;
image.Top = ShapePosition.Top;
image.Left = ShapePosition.Right;
image.WrapFormat.Style = WrapStyle.Through;

文档样式:

Style style = document.Styles["Normal"];
style.Font.Name = "Verdana";

style = document.Styles[StyleNames.Header];
style.ParagraphFormat.AddTabStop("16cm", TabAlignment.Right);

style = document.Styles[StyleNames.Footer];
style.ParagraphFormat.AddTabStop("8cm", TabAlignment.Center);

// Create a new style called Table based on style Normal
style = document.Styles.AddStyle("Table", "Normal");
style.Font.Name = "Verdana";
style.Font.Name = "Times New Roman";
style.Font.Size = 8;

// Create a new style called Reference based on style Normal
style = document.Styles.AddStyle("Reference", "Normal");
style.ParagraphFormat.SpaceBefore = "5mm";
style.ParagraphFormat.SpaceAfter = "5mm";
style.ParagraphFormat.TabStops.AddTabStop("16cm", TabAlignment.Right);
style.ParagraphFormat.Font.Size = 8;

如何缩小图像与页面顶部之间的空间?

3 个答案:

答案 0 :(得分:2)

设置image.WrapFormat.DistanceTop以设置图像的顶部位置。 如果以这种方式设置图像位置,则无需修改PageSetup。

可以使用RelativeVertical的不同值。你也可以使用负值。

另见:
http://forum.pdfsharp.net/viewtopic.php?p=5267#p5267

关于另一个答案:最好不要修改DefaultPageSetup。而是创建一个DefaultPageSetup的Clone()并修改它。 您的文档的PageSetup特定于您的文档。所有文件都共享DefaultPageSetup;当您以MDDDL格式保存文档或者您的应用程序具有不同页面设置的不同文档时,修改它会导致奇怪的效果。

答案 1 :(得分:1)

类似这样的事情

document.DefaultPageSetup.LeftMargin = MigraDoc.DocumentObjectModel.Unit.FromCentimeter(.8);
        document.DefaultPageSetup.TopMargin = MigraDoc.DocumentObjectModel.Unit.FromCentimeter(.5);
        document.DefaultPageSetup.PageWidth = MigraDoc.DocumentObjectModel.Unit.FromCentimeter(11);

答案 2 :(得分:0)

我对此的解决方案包括将图像放在文档的标题部分中,并通过将其封闭在无边界表中来控制标题中的位置。

文档的实际页眉和页脚部分不受文档边距的影响,它们具有自己的Unit属性。 文档的PageSetup对象中有一个HeaderDistance属性。 页脚(FooterDistance)也存在同样的问题。

https://forum.pdfsharp.net/viewtopic.php?f=2&t=3076

document.DefaultPageSetup.HeaderDistance = "0.20in";
document.DefaultPageSetup.FooterDistance = "0.20in";

尽管其他回答说不要直接修改DefaultPageSetup,但是它是文档对象中的只读变量,因此您不能将其设置为等于克隆。这是最好的方法。