我对包括MigraDoc在内的PDF创作完全陌生。我已经走到了这一步,这与我现在想要的非常接近。我的问题是我传递给" bodyParagraph"的文本字符串(myMessage)。最多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;
}
答案 0 :(得分:1)
第Paragraph bodyParagraph = section.AddParagraph();
行添加了一个空段落。我认为这是第一页上的额外空间
与以下代码块中的renderDate
相同的问题。
如果您不想要,请删除电话section.AddParagraph()
以删除空白段落。
MigraDoc很像Word和理解部分,段落和& c。在Word中也将帮助您使用MigraDoc。这些知识以及样本和IntelliSense应该可以帮助您。
您可以使用MigraDoc创建RTF文件,在Word中打开RTF,然后单击pilcrow以在Word中显示格式化字符。