текст с изображениями отображается очень маленьким шрифтом в конце страницы (внизу), используя PdfPTable из iTextSharp в ASP. Net Web API - PullRequest
0 голосов
/ 16 апреля 2020

Я экспортирую содержимое таблицы, используя PdfPTable и PdfPCell, используя библиотеку iTextSharp. Я обнаружил, что при экспорте данных в pdf в конце некоторых страниц (внизу) данные строки преобразуются в очень маленькую по высоте (включая текст и значки). Я пробовал много способов, чтобы решить проблему, но я не смог ее решить. enter image description here

У меня есть родительская таблица и структура дочерней таблицы. Родительская таблица, имеющая 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 дня, но безуспешно. Ваша помощь будет принята с благодарностью.

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

...