我需要在MigraDoc上添加页脚。 以下代码将页脚添加到所有页面。
页面的标题需要显示在每个页面上。
Document document = new Document();
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(false);
Section HeaderSection = document.AddSection();
HeaderSection.PageSetup.DifferentFirstPageHeaderFooter = false;
MigraDoc.DocumentObjectModel.Shapes.Image image = HeaderSection.Headers.Primary.AddImage("../images/logo.jpg");
image.Height = new Unit(65);
image.Width = new Unit(150);
image.LockAspectRatio = false;
image.RelativeVertical = RelativeVertical.Line;
image.RelativeHorizontal = RelativeHorizontal.Margin;
Paragraph ParaHead1 = HeaderSection.AddParagraph();
Parahead1.AddFormattedText("..dfg");
Table table = HeaderSection.Footers.Primary.AddTable();
table.Borders.Width = 0;
Column column = table.AddColumn();
column.Width =Unit.FromPoint(300);
column.Format.Alignment = ParagraphAlignment.Left;
Column column1 = table.AddColumn();
column1.Width = Unit.FromPoint(200);
column1.Format.Alignment = ParagraphAlignment.Left;
Row row = table.AddRow();
Cell cell = row.Cells[0];
cell.AddParagraph("Regards,");
cell = row.Cells[1];
Paragraph para1 = cell.AddParagraph();
para1.AddFormattedText("Support Team");
我需要页脚表仅出现在最后一页上。
我不想添加表的最后一个段落作为页脚,因为这将导致页脚只显示文本。
页面上的内容是动态的。
答案 0 :(得分:0)
仅在最后一页上不能将MigraDoc页脚用作页脚。
要实现此效果,您必须将文本添加到主体-或稍后使用PDFsharp绘制页脚。
您可以使用TextFrame
将页脚放在固定位置,但是必须注意TextFrame
不会与其他主体内容重叠。
要回答评论中的问题:
TextFrame
):我建议在主体文本中添加一个空的虚拟段落(如果需要),以确保页脚不会与主体重叠;虚拟段落的高度将是与文档主体区域重叠的页脚高度答案 1 :(得分:0)
我使用的方法是在Section中向PageSetup添加一个标志。 该标志告诉引擎用LastPageHeader和LastPageFooter关键字指定的内容替换最后一页的页眉和页脚。
这是支持最后一页页眉和页脚的部分示例(它使用特殊的Migradoc / xml语法,但原始mddl也支持该语法):
<Section>
<Attributes>
<PageSetup PageHeight="29.7cm" PageWidth="21cm" Orientation="Portrait" DifferentLastPageHeaderFooter="true"/>
</Attributes>
<LastPageHeader>
....
</LastPageHeader>
<LastPageFooter>
....
</LastPageFooter>
</Section>
此处提供支持此功能的前叉:https://github.com/emazv72/MigraDoc
请注意,LastPageHeader和LastPageFooter仅适用于PDF,不适用于RTF。