Таблица DynamicPDF: есть ли способ сгруппировать строки? - PullRequest
0 голосов
/ 05 февраля 2019

Мы пишем таблицу с помощью DynamicPDF, но мы хотим "сгруппировать" строки, чтобы в середине группы не происходил разрыв страницы.Группы в любом месте от одной до шести строк.Кто-нибудь нашел способ сделать это?Вот наш код:

// Create a PDF Document 
Document document = new Document();

Table2 table = new Table2(0, 0, 200, 700);

// Add columns to the table
table.Columns.Add(100);
table.Columns.Add(100);

// This loop populates the table 
for (int i = 1; i <= 400; i++)
{
   Row2 row = table.Rows.Add(20);
   row.Cells.Add("Row #" + i);
   row.Cells.Add("Item");
}

// This loop outputs the table to as many pages as is required
do
{
   Page page = new Page();
   document.Pages.Add(page);
   page.Elements.Add(table);
   table = table.GetOverflowRows();
} while (table != null);

1 Ответ

0 голосов
/ 06 февраля 2019

Нет свойства или метода, чтобы сделать это напрямую, но вы можете сделать это следующим образом:

  1. Используйте свойство Row2.ActualRowHeight, чтобы получить высоту каждой строки (это будетфактическая высота при выводе на основе ваших данных).
  2. После того, как вы нашли, где вы хотите разбить таблицу (после учета ваших групп строк), установите для свойства Table2.Height сумму этих значений.lines.
  3. Вызовите Table2.GetOverflowRows (), чтобы получить таблицу переполнения с оставшимися строками.
  4. Обратите внимание на значение Table2.VisibleStartRow в качестве начальной строки для таблицы переполнения и повторяйте от # 1 доTable2.GetOverflowRows () возвращает значение null.

Имейте в виду, что если у вас установлено свойство Table2.RepeatRowHeaderCount> 0, вам нужно будет включить эти строки заголовка в свои вычисления (# 2 выше)для каждой таблицы переполнения.

Полное раскрытие, я работаю на CeTe Software, создателей DynamicPDF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...