ปรับระยะห่างช่องในตาราง #2347, #2348

This commit is contained in:
harid 2026-03-02 17:45:47 +07:00
parent f22eff34d4
commit 120bd654ea
2 changed files with 66 additions and 46 deletions

View file

@ -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}");

View file

@ -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}");