Itextsharp #4 คู่มือเทคนิคพื้นฐานการใช้งาน PdfTable สำหรับมือใหม่ ตอนที่ 2
บทความนี้สำหรับผู้ที่ยังไม่ได้อ่านบทความก่อนหน้านี้ สามารถอ่านบทความได้ที่ Itextsharp #3 คู่มือเทคนิคพื้นฐานการใช้งาน PdfTable สำหรับมือใหม่ ตอนที่ 1 เพื่อความเข้าใจต่อเนื่องกันนะครับ โดยเนื้อหาในบทความนี้เป็นส่วนของใช้งาน Table ที่ผู้เขียนเองใช้ในการทำงานคือการทำ Nest Table นั้นเองโดยปกติการสร้างเอกสาร1ใบ ผู้เขียนจะใช้ Table ตัวแรกในการกำหนดรูปแบบหน้าตาของเอกสาร การจัดตำแหน่งสัดส่วนต่างๆ หลังจากนั้นก็ใช้ Table ซ้อนเข้าไปตามส่วนต่างๆตามที่ออกแบบไว้มาจัดการส่วนของข้อมูล จึงจำเป็นต้องใช้งาน Nest Table เราไปดูตัวอย่างรูปกันก่อนดีกว่าครับ จากตัวอย่างจะพบว่าสำหรับคนที่เขียนโปรแกรมก็คือการซ้อนตารางปกติที่พบเจอได้ในการเขียนโปแกรม จากรูปคือเอาTable2 ใส่ใน Cell ที่1ของ Table1 หรือพูดภาษาของเขียนโปรแกรมคือเขียน Table2 ลงใน <TD> แรกของ Table1 นั้นเอง ซึ่งถามว่าทำงานคล้ายๆกับตารางทั่วไปแล้วสามารถรวมCell ก่อนเพิ่มตารางได้ไหมใน ItextSharp ทำได้เหมือนกันครับ ตามรูปเลยครับ จากตัวอย่างเป็นการรวม Collumn แล้วทำการเพิ่ม Table2 เข้าไปโดยใน ItextSharp เรากำหนดCollumn ของTable1และTable2 เท่ากัน ตัวโปรแกรมจะจัดขนาดของ Cell ให้เท่ากันอัตโนมัติเมื่อทำการแสดงผลเหมือนในรูปตัวอย่างครับ ส่วนการเขียนโปแกรมนั้นง่ายมากๆเพิ่มขั้นตอนจากตอนที่1มานิดเดียว เราไปดู Code กันเลยดีกว่าครับ PdfPCell PdfCell = null; PdfPTable PdfTableH = new PdfPTable(3); float[] tbHwidths = { 50f, 50f, 50f }; PdfTableH.SetWidths(tbHwidths); PdfTableH.WidthPercentage = 100; PdfCell = new PdfPCell(new Phrase(new Chunk(“Table 2 Cell 1”, bold))); PdfCell.HorizontalAlignment = Element.ALIGN_CENTER; PdfCell.PaddingBottom = 8; PdfTableH.AddCell(PdfCell); PdfCell = new PdfPCell(new Phrase(new Chunk(“Table 2 Cell 2”, bold))); PdfCell.HorizontalAlignment = Element.ALIGN_CENTER; PdfCell.PaddingBottom = 8; PdfTableH.AddCell(PdfCell); PdfCell = new PdfPCell(new Phrase(new Chunk(“Table 2 Cell 3”, bold))); PdfCell.HorizontalAlignment = Element.ALIGN_CENTER; PdfCell.PaddingBottom = 8; PdfTableH.AddCell(PdfCell); PdfCell = new PdfPCell(new Phrase(new Chunk(“Table 2 Cell 4”, bold))); PdfCell.HorizontalAlignment = Element.ALIGN_CENTER; PdfCell.PaddingBottom = 8; PdfTableH.AddCell(PdfCell); PdfCell = new PdfPCell(new Phrase(new Chunk(“Table 2 Cell 5”, bold))); PdfCell.HorizontalAlignment = Element.ALIGN_CENTER; PdfCell.PaddingBottom = 8; PdfTableH.AddCell(PdfCell); PdfCell = new PdfPCell(new Phrase(new Chunk(“Table 2 Cell 6”, bold))); PdfCell.HorizontalAlignment = Element.ALIGN_CENTER; PdfCell.PaddingBottom = 8; PdfTableH.AddCell(PdfCell); //—————————————————————–// PdfPTable PdfTable = new PdfPTable(3); float[] tbwidths = { 50f, 50f, 50f }; PdfTable.SetWidths(tbwidths); PdfTable.WidthPercentage