2017-11-08 7 views
0

MigraDocで相対的な列幅を設定する方法が必要でしたが、件名にthis postが見つかりました。問題は、それが私のために働かないということです。私はそのポストから正確なコードをコピーした:MigraDocセクションの幅

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」に設定されています。私はそれを取得しません...

答えて

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; 
関連する問題