2016-08-30 52 views
0

在下面的C#代碼中,我嘗試確定頁面的寬度,以便可以將3列的表拉伸到頁面的整個寬度(減去邊距)。最初,我認爲我應該將每個表格列的寬度設置爲頁面寬度的1/3。然而,我發現,section.PageSetup.PageWidthsection.PageSetup.LeftMarginsection.PageSetup.RightMargin在下面的代碼返回0。PDFsharp/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); 

值我認爲設置頁面格式PageFormat.A4和定向Orientation.Portrait將相應地設置的section.PageSetup.PageWidth的值,將還將邊距值設置爲某些默認值。有人可以告訴我我做錯了什麼嗎?我只是剛剛開始使用MigraDoc。非常感謝。

+1

這可能會幫助你:http://stackoverflow.com/questions/15966672/pdfsharp-page-size-and-set-margin-issue-c-sharp(本標記答案表示包含的代碼是migradoc)。 –

+0

謝謝史蒂夫。是的,它有幫助。我已經瞭解到我可以使用這個:'PdfSharp.Drawing.XSize size = PdfSharp.PageSizeConverter.ToSize(PdfSharp.PageSize.A4)'來獲得整個頁面的寬度,包括頁邊距。現在我必須找到一種方法來減去默認邊距以獲得頁面的「可用寬度」。 – user2430797

回答

2

您可以使用document.DefaultPageSetup查詢默認頁邊距。

MigraDoc使用自制的可空值(在.NET 1.1的日子裏實現),未設置的值將返回0,而不是實際使用的默認值。

參見:
https://stackoverflow.com/a/22679890/1015447