我正在使用MigraDoc创建PDF。根据我的要求,我必须根据页面\ section的内容添加不同的标题。我可以通过添加新部分并为每个部分定义新标头来实现它。直到这里,它运作正常 在页脚中,我使用" AddPageField"显示页码。但我意识到每当新的部分开始时,页面字段重置为1.页脚是否有任何方式可以继续所有部分的页数? 如果我在整个文档中只使用一个部分,则页码继续。但在这种情况下,我不能使用不同的标题。
答案 0 :(得分:3)
这似乎是MigraDoc版本1.50 beta 1中的一个错误。
该错误尚未修复,但只需要进行一些小修改,我希望在下一个版本中对其进行修正。
我不得不改变主意:这不是一个错误,它是一个功能。
要实现OP的要求,您必须将PageSetup
分配给设置StartingNumber的第一部分,并将PageSetup
分配给未设置StartingNumber的第二部分。
如果没有为第二部分设置PageSetup
,则此部分将从第一部分继承PageSetup
,并且StartingNumber将应用于这两部分。如果每个部分是例如,这是期望的行为。一个连续的字母。
这是我的测试代码(只是一个代码片段):
var sec1 = document.LastSection;
sec1.PageSetup = document.DefaultPageSetup.Clone();
sec1.PageSetup.StartingNumber = 17;
sec1.Footers.Primary = new HeaderFooter();
var para = sec1.Footers.Primary.AddParagraph();
para.AddPageField();
var sec2 = document.AddSection();
sec2.PageSetup = document.DefaultPageSetup.Clone();
第二部分从第一部分继承了页脚,但是新的PageSetup
会覆盖StartingNumber。
Clone()
在这里很方便。