Я экспортирую содержимое таблицы, используя PdfPTable и PdfPCell, используя библиотеку iTextSharp. Я обнаружил, что при экспорте данных в pdf в конце некоторых страниц (внизу) данные строки преобразуются в очень маленькую по высоте (включая текст и значки). Я пробовал много способов, чтобы решить проблему, но я не смог ее решить. ![enter image description here](https://i.stack.imgur.com/uPIZn.png)
У меня есть родительская таблица и структура дочерней таблицы. Родительская таблица, имеющая 12 столбцов 1-я строка родительской таблицы: Управление инцидентами: подозрительные случаи 2-я строка родительской таблицы: Существуют ли процедуры для случаев? 3-й ряд родительского элемента: дочерняя таблица с 2 столбцами (1-й столбец с иконкой и 2-й столбец с номером)
Ниже приведен код для рендеринга данных дочерней таблицы.
for (int s = 1; s a.FieldTitle == s.ToString()).Any())
{
cell.AddElement(selScenario);
}
else
{
cell.AddElement(noSelScenario);
}
}
else
{
//No scenarios available to select/unselect
cell.AddElement(noScenario);
}
subTable.AddCell(cell);
cell = newCell(s.ToString());
cell.HorizontalAlignment = Element.ALIGN_CENTER;
subTable.AddCell(cell);
PdfPCell outerCell = new PdfPCell();
outerCell.Border = Rectangle.NO_BORDER;
outerCell.Padding = 0;
outerCell.AddElement(subTable);
table.AddCell(outerCell);
}
Ниже приведено обобщение c функция для pdf-ячейки
private PdfPCell newCell(string text = "", int? colSpan = null, int hAlign = Element.ALIGN_LEFT,
float fSize = 8f, int fStyle = Font.NORMAL, BGColor bgColor = BGColor.None,
float padding = 5, float bottomBorder = 0, int rowSpan = 0)
{
PdfPCell cell;
if (string.IsNullOrEmpty(text))
cell = new PdfPCell();
else
{
chkMultiLang.Font.SetStyle(fStyle);
cell = new PdfPCell(new Phrase(fSize, text, chkMultiLang.Font));
}
if (colSpan.HasValue)
cell.Colspan = colSpan.Value;
cell.HorizontalAlignment = hAlign;</p>
<pre><code> cell.VerticalAlignment = Element.ALIGN_MIDDLE;
cell.UseAscender = true;
cell.BorderWidth = 0;
cell.PaddingTop = padding;
cell.PaddingBottom = padding;
if (bottomBorder >= 1)
{
cell.BorderWidthBottom = bottomBorder;
cell.BorderColorBottom = new iTextSharp.text.BaseColor(238, 238, 238);
}
switch (bgColor)
{
case BGColor.DarkGray:
cell.BackgroundColor = new BaseColor(142, 142, 142); //Dark Gray //Height 22
break;
case BGColor.LightGray:
cell.BackgroundColor = new BaseColor(221, 221, 221); //Light Gray //Height 20
break;
case BGColor.Gray:
cell.BackgroundColor = new BaseColor(238, 238, 238); //Gray //Height 18
break;
}
if (rowSpan >= 2)
cell.Rowspan = rowSpan;
return cell;
}
Я пытался решить проблему почти 2 дня, но безуспешно. Ваша помощь будет принята с благодарностью.
Дайте мне знать, если вам что-то еще нужно, чтобы понять проблему.