我是全新的PDF创建,包括MigraDoc。我已经走到了这一步,这非常接近我现在想要的。我的问题是,我传递给"bodyParagraph“的文本字符串(BodyParagraph)长达100行,这将导致创建三个页面,这是很好的。然而,第一页的上缘略大于第二和第三页。我不知道为什么..。
基本上,我试图创建每一页相同的。无论"bodyParagraph“内容中有多少行,相同的页眉、页脚和正文都要占用相同的空间。如果我采取了完全错误的做法,我就愿意接受建议。
另外,如果有一个很好的教程来指导我,那就太好了。除了样品我什么也找不到。我已经从样本中学到了所有的东西,但是章节、段落等对我来说都是新的,我想更好地了解我所做的事情。


public static Document CreateWorkOrderPDF2(Document document, string filename, string WorkOrderHeader, string myMessage)
{
Section section = document.AddSection();
section.PageSetup.PageFormat = PageFormat.Letter;
section.PageSetup.StartingNumber = 1;
section.PageSetup.LeftMargin = 40;
//Sets the height of the top margin
section.PageSetup.TopMargin = 100;
section.PageSetup.RightMargin = 40;
section.PageSetup.BottomMargin = 40;
//MARGIN
HeaderFooter header = section.Headers.Primary;
header.Format.Font.Size = 16;
header.Format.Font.Color = Colors.DarkBlue;
MigraDoc.DocumentObjectModel.Shapes.Image headerImage = header.AddImage("../../Fonts/castorgate.regular.png");
headerImage.Width = "2cm";
Paragraph headerParagraph = section.AddParagraph();
headerParagraph = header.AddParagraph(WorkOrderHeader);
//BODY PARAGRAPH
Paragraph bodyParagraph = section.AddParagraph();
bodyParagraph = section.AddParagraph(myMessage);
bodyParagraph.Format.Font.Size = 10;
bodyParagraph.Format.Font.Color = Colors.DarkRed;
//paragraph.Format.Distancne = "3cm";
Paragraph renderDate = section.AddParagraph();
renderDate = section.AddParagraph("Work Order Generated: ");
renderDate.AddDateField();
return document;
}发布于 2018-06-18 14:59:36
行Paragraph bodyParagraph = section.AddParagraph();添加了一个空段落。我想这是第一页的额外空间。
下面的代码块中的renderDate也有相同的问题。只要删除调用section.AddParagraph(),以删除空段落,如果你不想。
MigraDoc很像单词和理解部分,段落和C。在Word中也会帮助您使用MigraDoc。这些知识,以及样本和IntelliSense,应该会让你走。
您可以使用MigraDoc创建RTF文件,在Word中打开RTF,然后单击pilcrow以显示Word中的格式化字符。
https://stackoverflow.com/questions/50911991
复制相似问题