2017-02-13 2 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. Присвойте значение Clone() параметра DefaultPageSetup для PageSetup вашего раздела и измените его по мере необходимости.

+0

спасибо, что лучший способ добавить страницу, после того, как первый был создан? – jerryn44

+0

Вы можете вызвать 'AddPageBreak()' для вашего раздела, чтобы заставить разрыв страницы перед второй таблицей. Вы можете вызвать 'AddSection()' для вашего документа, чтобы создать новый раздел (это неявно приводит к разрыву страницы). Новый раздел может использовать другой формат страницы, поэтому, если вы решите использовать пользовательские форматы страниц, новый раздел для второй таблицы также позволит вам использовать другую ширину страницы. –

+0

префектура. Спасибо – jerryn44

Смежные вопросы