diff --git a/Controllers/ExamReportController.cs b/Controllers/ExamReportController.cs index 629aa63..91fde03 100644 --- a/Controllers/ExamReportController.cs +++ b/Controllers/ExamReportController.cs @@ -738,30 +738,31 @@ namespace BMA.EHR.Report.Service.Controllers // Title var title = new Paragraph($"รายชื่อผู้มีสิทธิ์สอบ\n{examName ?? ""}") .SetBold() - .SetMultipliedLeading(0.9f) + .SetMultipliedLeading(1.0f) .SetTextAlignment(TextAlignment.CENTER); document.Add(title); - + float[] columnWidths = { 10f, 20f, 45f, 25f }; // Loop Groups foreach (var group in groupData) { // Group Header (ตำแหน่ง) Paragraph positionHeader = new Paragraph($"{group.PositionName} {group.Total}") .SetBold() - .SetMultipliedLeading(0.9f) - .SetTextAlignment(TextAlignment.CENTER); + .SetMultipliedLeading(1.0f) + .SetTextAlignment(TextAlignment.CENTER) + .SetMarginBottom(5); document.Add(positionHeader); - var table = new iText.Layout.Element.Table(new float[] { 1, 2, 3, 2 }).UseAllAvailableWidth(); - table.SetWidth(UnitValue.CreatePercentValue(100)); + var table = new iText.Layout.Element.Table(UnitValue.CreatePercentArray(columnWidths)).UseAllAvailableWidth(); // Table Header string[] headers = { "ลำดับที่", "เลขประจำตัวสอบ", "ชื่อ-สกุล", "หมายเหตุ" }; foreach (var h in headers) { - table.AddHeaderCell(new Cell().Add(new Paragraph(h).SetMultipliedLeading(0.9f)) + table.AddHeaderCell(new Cell() + .Add(new Paragraph(h).SetMultipliedLeading(1.0f)) .SetBold() .SetTextAlignment(TextAlignment.CENTER)); } @@ -769,13 +770,20 @@ namespace BMA.EHR.Report.Service.Controllers // Table Details foreach (var x in group.Persons) { - table.AddCell(new Cell().Add(new Paragraph(x.No).SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.CENTER)); - table.AddCell(new Cell().Add(new Paragraph(x.ExamId).SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.CENTER)); - table.AddCell(new Cell().Add(new Paragraph(x.FullName).SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.LEFT)); - table.AddCell(new Cell().Add(new Paragraph(x.Remark ?? "").SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.CENTER)); + table.AddCell(new Cell().Add(new Paragraph(x.No ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.CENTER)); + + table.AddCell(new Cell().Add(new Paragraph(x.ExamId ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.CENTER)); + + table.AddCell(new Cell().Add(new Paragraph(x.FullName ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.LEFT)); + + table.AddCell(new Cell().Add(new Paragraph(x.Remark ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.CENTER)); } document.Add(table); - document.Add(new Paragraph("\n")); + document.Add(new Paragraph("").SetMarginBottom(15)); } } return File(stream.ToArray(), "application/pdf", $"รายชื่อผู้มีสิทธิ์สอบ_{examName}"); @@ -865,43 +873,46 @@ namespace BMA.EHR.Report.Service.Controllers var title = new Paragraph($"รายชื่อผู้สอบแข่งขันได้\n{examName}") .SetBold() - .SetMultipliedLeading(0.9f) + .SetMultipliedLeading(1.0f) .SetTextAlignment(TextAlignment.CENTER); document.Add(title); - + float[] columnWidths = { 10f, 20f, 45f, 25f }; foreach (var g in groupData) { // Header per group Paragraph positionHeader = new Paragraph($"{g.PositionName} {g.Total}") .SetBold() - .SetMultipliedLeading(0.9f) - .SetTextAlignment(TextAlignment.CENTER); + .SetMultipliedLeading(1.0f) + .SetTextAlignment(TextAlignment.CENTER) + .SetMarginBottom(5); document.Add(positionHeader); - var table = new iText.Layout.Element.Table(new float[] { 1, 2, 3, 2 }).UseAllAvailableWidth(); - table.SetWidth(UnitValue.CreatePercentValue(100)); + var table = new iText.Layout.Element.Table(UnitValue.CreatePercentArray(columnWidths)).UseAllAvailableWidth(); string[] headers = { "ลำดับที่", "สนามสอบ", "ชื่อ - นามสกุล", "คะแนนสอบ" }; foreach (var h in headers) { - table.AddHeaderCell(new Cell().Add(new Paragraph(h).SetMultipliedLeading(0.9f)) + table.AddHeaderCell(new Cell().Add(new Paragraph(h).SetMultipliedLeading(1.0f)) .SetTextAlignment(TextAlignment.CENTER) .SetBold()); } foreach (var p in g.Persons) { - table.AddCell(new Cell().Add(new Paragraph(p.Number).SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.CENTER)); + table.AddCell(new Cell().Add(new Paragraph(p.Number ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.CENTER)); table.AddCell(new Cell()); - table.AddCell(new Cell().Add(new Paragraph(p.FullName).SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.LEFT)); - table.AddCell(new Cell().Add(new Paragraph(p.SumScore).SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.CENTER)); + table.AddCell(new Cell().Add(new Paragraph(p.FullName ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.LEFT)); + table.AddCell(new Cell().Add(new Paragraph(p.SumScore ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.CENTER)); } document.Add(table); - document.Add(new Paragraph("\n")); + document.Add(new Paragraph("").SetMarginBottom(15)); } } return File(stream.ToArray(), "application/pdf", $"รายชื่อผู้สอบแข่งขันได้_{examName}"); diff --git a/Controllers/RecruitReportController.cs b/Controllers/RecruitReportController.cs index 1afe0be..682de55 100644 --- a/Controllers/RecruitReportController.cs +++ b/Controllers/RecruitReportController.cs @@ -406,30 +406,31 @@ namespace BMA.EHR.Report.Service.Controllers $"รายชื่อผู้ชำระค่าธรรมเนียมการสมัครสอบการแข่งขันเพื่อบรรจุและแต่งตั้งบุคคลเข้ารับราชการเป็นข้าราชการกรุงเทพมหานครสามัญ {examName ?? ""}" ) .SetBold() - .SetMultipliedLeading(0.9f) + .SetMultipliedLeading(1.0f) .SetTextAlignment(TextAlignment.CENTER); document.Add(title); - + float[] columnWidths = { 10f, 20f, 45f, 25f }; // Loop Groups foreach (var group in groupData) { // Group Header (ตำแหน่ง) Paragraph positionHeader = new Paragraph($"{group.PositionName} {group.Total}") .SetBold() - .SetMultipliedLeading(0.9f) - .SetTextAlignment(TextAlignment.CENTER); + .SetMultipliedLeading(1.0f) + .SetTextAlignment(TextAlignment.CENTER) + .SetMarginBottom(5); document.Add(positionHeader); - var table = new iText.Layout.Element.Table(new float[] { 1, 2, 3, 2 }).UseAllAvailableWidth(); - table.SetWidth(UnitValue.CreatePercentValue(100)); + var table = new iText.Layout.Element.Table(UnitValue.CreatePercentArray(columnWidths)).UseAllAvailableWidth(); // Table Header string[] headers = { "ลำดับที่", "เลขประจำตัวสอบ", "ชื่อ-สกุล", "หมายเหตุ" }; foreach (var h in headers) { - table.AddHeaderCell(new Cell().Add(new Paragraph(h).SetMultipliedLeading(0.9f)) + table.AddHeaderCell(new Cell() + .Add(new Paragraph(h).SetMultipliedLeading(1.0f)) .SetBold() .SetTextAlignment(TextAlignment.CENTER)); } @@ -437,14 +438,18 @@ namespace BMA.EHR.Report.Service.Controllers // Table Details foreach (var x in group.Persons) { - table.AddCell(new Cell().Add(new Paragraph(x.No).SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.CENTER)); - table.AddCell(new Cell().Add(new Paragraph(x.ExamId).SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.CENTER)); - table.AddCell(new Cell().Add(new Paragraph(x.FullName).SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.LEFT)); - table.AddCell(new Cell().Add(new Paragraph(x.Remark ?? "").SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.CENTER)); + table.AddCell(new Cell().Add(new Paragraph(x.No ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.CENTER)); + table.AddCell(new Cell().Add(new Paragraph(x.ExamId ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.CENTER)); + table.AddCell(new Cell().Add(new Paragraph(x.FullName ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.LEFT)); + table.AddCell(new Cell().Add(new Paragraph(x.Remark ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.CENTER)); } document.Add(table); // เว้นระหว่าง groups - document.Add(new Paragraph("\n")); + document.Add(new Paragraph("").SetMarginBottom(15)); } } return File(stream.ToArray(), "application/pdf", $"รายชื่อผู้มีสิทธิ์สอบ_{examName}"); @@ -607,43 +612,47 @@ namespace BMA.EHR.Report.Service.Controllers document.SetMargins(30, 15, 20, 15); var title = new Paragraph($"รายชื่อผู้สอบแข่งขันได้\n{examName}") - .SetMultipliedLeading(0.9f) + .SetMultipliedLeading(1.0f) .SetBold() .SetTextAlignment(TextAlignment.CENTER); document.Add(title); - + float[] columnWidths = { 10f, 20f, 45f, 25f }; foreach (var g in groupData) { // Header per group Paragraph positionHeader = new Paragraph($"{g.PositionName} {g.Total}") - .SetMultipliedLeading(0.9f) + .SetMultipliedLeading(1.0f) .SetTextAlignment(TextAlignment.CENTER) - .SetBold(); + .SetBold() + .SetMarginBottom(5); document.Add(positionHeader); - var table = new iText.Layout.Element.Table(new float[] { 1, 2, 3, 2 }).UseAllAvailableWidth(); - table.SetWidth(UnitValue.CreatePercentValue(100)); + var table = new iText.Layout.Element.Table(UnitValue.CreatePercentArray(columnWidths)).UseAllAvailableWidth(); string[] headers = { "ลำดับที่", "สนามสอบ", "ชื่อ - นามสกุล", "คะแนนสอบ" }; foreach (var h in headers) { - table.AddHeaderCell(new Cell().Add(new Paragraph(h).SetMultipliedLeading(0.9f)) + table.AddHeaderCell(new Cell() + .Add(new Paragraph(h).SetMultipliedLeading(1.0f)) .SetTextAlignment(TextAlignment.CENTER) .SetBold()); } foreach (var p in g.Persons) { - table.AddCell(new Cell().Add(new Paragraph(p.Number).SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.CENTER)); + table.AddCell(new Cell().Add(new Paragraph(p.Number ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.CENTER)); table.AddCell(new Cell()); - table.AddCell(new Cell().Add(new Paragraph(p.FullName).SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.LEFT)); - table.AddCell(new Cell().Add(new Paragraph(p.SumScore).SetMultipliedLeading(0.9f)).SetTextAlignment(TextAlignment.CENTER)); + table.AddCell(new Cell().Add(new Paragraph(p.FullName ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.LEFT)); + table.AddCell(new Cell().Add(new Paragraph(p.SumScore ?? "").SetMultipliedLeading(1.0f)) + .SetTextAlignment(TextAlignment.CENTER)); } document.Add(table); - document.Add(new Paragraph("\n")); + document.Add(new Paragraph("").SetMarginBottom(15)); } } return File(stream.ToArray(), "application/pdf", $"รายชื่อผู้สอบแข่งขันได้_{examName}");