2017-02-13 98 views
0

我有一個PDF文檔,我嘗試創建,大約20列,寬度不等。它獲得第一頁大約一半的列,然後切斷其餘部分。我希望它確定頁面寬度並將剩餘的列移動到第二頁上。有沒有辦法在渲染或PageSetup中指定它?我想我必須計算寬度,創建第一頁然後創建第二頁。如何讓MigraDoc使用動態頁面寬度生成PDF?

Table table = new Table(); 

PdfDocumentRenderer renderer = new PdfDocumentRenderer(true, PdfSharp.Pdf.PdfFontEmbedding.Always); 
renderer.Document = doc; 
doc.DefaultPageSetup.Orientation = MigraDoc.DocumentObjectModel.Orientation.Landscape; 

//create the columns 
for (int i = 1; i < tripReportGrid.Columns.Count; i++) 
    { 
     col = table.AddColumn(tripReportGrid.Columns[i].Width); 
     col.Format.Alignment = ParagraphAlignment.Center; 
    } 

...fill the content same way 

renderer.RenderDocument(); 

回答

0

頁面的寬度是你設置的 - 或者A4,如果你什麼都不設置的話。

您可以將頁面的寬度設置爲任意值。在屏幕上查看PDF文件時,這可能是確定的。

或者,您只能在一張表上添加儘可能多的列。 A4格式爲29.7釐米。默認邊距是2.5釐米左右。

而且BTW:你永遠不應該修改DefaultPageSetup。將DefaultPageSetup的Clone()分配給您的部分的PageSetup,並根據需要進行更改。

+0

謝謝,在創建第一個頁面後,添加頁面的最佳方式是什麼? – jerryn44

+0

您可以調用您的節的「AddPageBreak()」在第二個表之前強制分頁。你可以爲你的文檔調用AddSection()來創建一個新的部分(這隱含地導致了分頁符)。新的部分可以使用不同的頁面格式,所以如果您決定使用自定義頁面格式,第二張表的新部分也允許您使用不同的頁面寬度。 –

+0

知府。謝謝 – jerryn44