MigraDoc节宽

时间:2017-11-08 10:23:15

标签: c# migradoc

我想要一个方法在MigraDoc中设置相对列宽,我在主题上找到了this post。问题是,它对我不起作用。我已从该帖子中复制了确切的代码:

Section section = document.AddSection();
section.PageSetup.PageFormat = PageFormat.A4;

int sectionWidth = (int)(section.PageSetup.PageWidth - section.PageSetup.LeftMargin - section.PageSetup.RightMargin);
int columnWidth = sectionWidth / 2;

但是,如果我在代码中插入一个断点(在int columnWidth = ...之后),则表明节页面宽度为零:

Screenshot of Output

显然,从截面宽度得到的所有东西也变为零。但为什么?如您所见,PageFormat已正确设置为" A4"。我不明白......

1 个答案:

答案 0 :(得分:0)

我设法找到了解决方案(有点巧合)。这篇文章描述了与section.PageSetup有些类似的问题。解决方案是在修改之前创建默认页面设置的克隆。新代码如下所示:

Section section = document.AddSection();
section.PageSetup = document.DefaultPageSetup.Clone(); // <-- This has been added
section.PageSetup.PageFormat = PageFormat.A4;

int sectionWidth = (int)(section.PageSetup.PageWidth - section.PageSetup.LeftMargin - section.PageSetup.RightMargin);
int columnWidth = sectionWidth / 2;