新部分开始时页码重置 - MigraDoc

时间:2015-05-13 00:47:38

标签: pdfsharp migradoc

我正在使用MigraDoc创建PDF。根据我的要求,我必须根据页面\ section的内容添加不同的标题。我可以通过添加新部分并为每个部分定义新标头来实现它。直到这里,它运作正常 在页脚中,我使用" AddPageField"显示页码。但我意识到每当新的部分开始时,页面字段重置为1.页脚是否有任何方式可以继续所有部分的页数? 如果我在整个文档中只使用一个部分,则页码继续。但在这种情况下,我不能使用不同的标题。

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()在这里很方便。