2016-08-30 3 views
0

次のC#コードでは、ページの全幅(マージンを引いたもの)までの3列のテーブルを引き伸ばすことができるように、ページの幅を決定しようとしています。最初は、各表の列の幅をページ幅の1/3に設定する必要があると考えました。しかし、私は、以下のコードでsection.PageSetup.PageWidthsection.PageSetup.LeftMarginsection.PageSetup.RightMargin私はOrientation.PortraitPageFormat.A4および向きにページの書式を設定することに応じてsection.PageSetup.PageWidthの値を設定しますと想定0PDFsharp/MigraDoc - なぜsection.PageSetup.PageWidth = 0ですか?

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

    int sectionWidth = (int)Math.Ceiling(section.PageSetup.PageWidth - 
          section.PageSetup.LeftMargin - 
          section.PageSetup.RightMargin); 

    int columnWidth = (int)Math.Ceiling(sectionWidth/3); 

の値を返すことがわかっまた、余白の値をいくつかのデフォルト値に設定します。誰かが私が間違っていることを教えてもらえますか?私は昨日MigraDocを使い始めたばかりです。どうもありがとう。

+1

これはあなたを助けることがあります。http://stackoverflow.com/questions/15966672/pdfsharp-page-size-and-set-margin-issue-c-sharp(マーク付きの答えは、含まれているコードはmigradocだと言います)。 –

+0

Steveに感謝します。はい、それは助けます。私はこれを使用することができることを学んだ: 'PdfSharp.Drawing.XSize size = PdfSharp.PageSizeConverter.ToSize(PdfSharp.PageSize.A4)'は、余白を含むページ全体の幅を取得する。今私はページの "使用可能な幅"を得るために、デフォルトの余白を引く方法を見つける必要があります。 – user2430797

答えて

2

document.DefaultPageSetupを使用して、デフォルトのマージンを照会することができます。

MigraDocは、実際に使用されるデフォルト値ではなく、0に設定されていない値を返します(.NET 1.1の時代に実装された)。

も参照してください:
https://stackoverflow.com/a/22679890/1015447

関連する問題