Переходя прямо к точке
Я создаю большую таблицу, которая получает данные из бэкэнда.
Я использую Itextsharp 5.0.0.Невозможно выполнить обновление по определенным причинам
У меня есть родительская таблица, в которую я добавляю все таблицы как ячейку.
В родительскую таблицу я добавляю следующие свойства
SplitRowsк истине SplitLate к ложному KeepTogether к ложному
В дочерней таблице следующие свойства добавляются KeepTogether к ложному splitRows к ложному;// для некоторой таблицы После получения всех строк из другой функции, которая вызывается в основную таблицу, я применяю SetExtendedRow к false. Затем я добавляю эту таблицу в pdfdocument.
Структура основной таблицы
private PdfPTable mainTable()
{
//PdfPTableHelper.Create-> Create Table without border
//Create(1->Number of column)
PdfPTable mainTable= PdfPTableHelper.Create(1);
mainTable.KeepTogether = false;
mainTable.SplitRows = true;
mainTable.SplitLate = false;
foreach(var part in parts)
{
ChildTable1(ref mainTable,part);
ChildTable2(ref mainTable,part);
ChildTable3(ref mainTable,part);
}
mainTable.SetExtendedRow(false,false);
}
private PdfPTable ChildTable1(ref PdfPTable mainTable,XElement part)
{
PdfPTable childTable1 = PdfPTableHelper.Create(4);
childTable1.KeepTogether = false;
//CreatePdfCell(Value of the cell, font, number of column)
childTable1.AddCell(CellHelper.CreatePdfCell("Cell1: "+part.Cell1.value,defaultFont,1));
childTable1.AddCell(CellHelper.CreatePdfCell("Cell2: "+part.Cell2.value,defaultFont,3));
childTable1.AddCell(CellHelper.CreatePdfCell("Cell3: "+part.Cell3.value,defaultFont,1));
childTable1.AddCell(CellHelper.CreatePdfCell("Cell14 "+part.Cell4.value,defaultFont,3));
childTable1.splitRows = false;//For some table
mainTable.AddCell(childTable1);
}
Точно так же другие дочерние таблицы создаются и добавляются в основную таблицу
Все проблемы возникают, когда itext пытается отобразить таблицу в конце страницы.,Моя цель - контент может перетекать через страницу.Но не должно быть никакой потери данных.
Если мы не используем splitRows в false.В некоторых случаях мы теряем одну часть таблицы, как показано ниже
На этом изображении вы видите, что содержимое cell2 с правой стороны переходит на следующую страницу. Но в конце страницы первая часть PdfPRow пропущена. Itext полностью игнорирует это и переходит к следующей части строки, отображает ее в начале следующей страницы.
Почему это происходит?Я устал от поиска не может получить какую-либо соответствующую информацию Если мы применяем splitRow -> false к этой таблице, полная строка будет перенаправлена на следующую страницу.Сохраняя значительное количество места на последней странице, что не в порядке.
false">
У меня есть вопросы ниже
В чем недостатокsplitLate -> false, происходит ли потеря данных из-за этого, если да, как этого избежать, у меня не может быть пробелов на страницах.
Какое свойство следует применить к родительской таблице, чтобыон сохраняет все дочерние таблицы без изменений.Не приводит к потере данных.
Я знаю, что Itext 5.0.0 вроде как мертв.Но я ничего не могу сделать в моем случае, чтобы обновить его до последней версии.