在Migradoc的最后一页上添加页脚

时间:2018-12-30 19:37:50

标签: pdfsharp migradoc

我需要在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");

我需要页脚表仅出现在最后一页上。

我不想添加表的最后一个段落作为页脚,因为这将导致页脚只显示文本。

页面上的内容是动态的。

2 个答案:

答案 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。