i want set width for PdfpCell in Table, i want design this
i Write this code
PdfPCell cell; PdfGrid tableHeader; PdfGrid tmpTable; PdfGrid table = new PdfGrid(numColumns: 1) { WidthPercentage = 100, RunDirection = PdfWriter.RUN_DIRECTION_LTR, ExtendLastRow = false }; string imagepath2 = HttpRuntime.AppDomainAppPath + "Header.JPG"; cell = new PdfPCell() { Border = 0, RunDirection = PdfWriter.RUN_DIRECTION_RTL }; cell.Image = iTextSharp.text.Image.GetInstance(imagepath2); table.AddCell(cell); tableHeader = new PdfGrid(numColumns: 10); tableHeader.RunDirection = PdfWriter.RUN_DIRECTION_LTR; tmpTable = new PdfGrid(numColumns: 1); tmpTable.TotalWidth = 10f; tmpTable.LockedWidth = true; cell = new PdfPCell() {Rotation =-90,VerticalAlignment =Element.ALIGN_MIDDLE, HorizontalAlignment =Element.ALIGN_CENTER, BorderWidth = 1}; cell.Phrase = fontSelector.Process("SER. No"); tmpTable.AddCell(cell); cell = new PdfPCell(tmpTable) { BorderWidth = 1, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; tableHeader.AddCell(cell); //////////////////////////////////////////////////////////// tmpTable = new PdfGrid(numColumns: 1); cell = new PdfPCell() { Border = 0, BorderWidthBottom = 1,VerticalAlignment =Element.ALIGN_MIDDLE, HorizontalAlignment =Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("TYPE OF SHIPPING"); // tmpTable.AddCell(cell); cell = new PdfPCell() { Border = 0, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("AWB / BL NO."); tmpTable.AddCell(cell); cell = new PdfPCell(tmpTable) { BorderWidth = 1, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; tableHeader.AddCell(cell); /////////////////////////////////////////////////////////////// tmpTable = new PdfGrid(numColumns: 1); cell = new PdfPCell() { Border = 0, BorderWidthBottom = 1, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("ORDER NO."); tmpTable.AddCell(cell); cell = new PdfPCell() { Border = 0, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("COMPLEX NAME"); tmpTable.AddCell(cell); cell = new PdfPCell(tmpTable) { BorderWidth = 1, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; tableHeader.AddCell(cell); /////////////////////////////////////////////////////////////// tmpTable = new PdfGrid(numColumns: 1); cell = new PdfPCell() { Border = 0, BorderWidthBottom = 1, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("QTY."); tmpTable.AddCell(cell); cell = new PdfPCell() { Border = 0, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("G.W Kgs."); tmpTable.AddCell(cell); cell = new PdfPCell(tmpTable) { BorderWidth = 1, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; tableHeader.AddCell(cell); /////////////////////////////////////////////////////////////// tmpTable = new PdfGrid(numColumns: 1); cell = new PdfPCell() { Border = 0, BorderWidthBottom = 1, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("DISCHARGE PPORT"); tmpTable.AddCell(cell); cell = new PdfPCell() { Border = 0, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("DESTINATON"); tmpTable.AddCell(cell); cell = new PdfPCell(tmpTable) { BorderWidth = 1 }; tableHeader.AddCell(cell); /////////////////////////////////////////////////////////////// cell = new PdfPCell() { BorderWidth = 1, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("DESCRIPTION OF GOODS"); tableHeader.AddCell(cell); ///////////////////////////////////////////////////////////// tmpTable = new PdfGrid(numColumns: 1); cell = new PdfPCell() { Border = 0, BorderWidthBottom = 1, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("LINE DOC. RECI. DATE"); tmpTable.AddCell(cell); cell = new PdfPCell(new Phrase("")) { Border = 0, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("OWNER DOC. RECI. DATE"); tmpTable.AddCell(cell); cell = new PdfPCell(tmpTable) { BorderWidth = 1 }; tableHeader.AddCell(cell); /////////////////////////////////////////////////////////////// cell = new PdfPCell() { BorderWidth = 1, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("CLEARANCE DATE"); tableHeader.AddCell(cell); /////////////////////////////////////////////////////////// cell = new PdfPCell() { BorderWidth = 1, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("CUSTOM PERMIT NO."); tableHeader.AddCell(cell); /////////////////////////////////////////////////////////// cell = new PdfPCell() { BorderWidth = 1, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; cell.Phrase = fontSelector.Process("DISPATCH DATE"); tableHeader.AddCell(cell); /////////////////////////////////////////////////////////// cell = new PdfPCell(tableHeader) { BorderWidth = 1, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; table.AddCell(cell); doc.Add(table); /////////////////////////////////////////////////////////// doc.Close();
but this code create this table
i want resize width SerNo column but
But I do not know how to resize the width of the cell, please help me.
You can't change the width of individual cells, only of a complete column. The PdfPtable class has the setWidths method for that, or you can use the PdfPTable(float[] relativeWidths) constructor. PdfPTable toolsTable = new PdfPTable( 3 ); toolsTable.
Check out below example: //Create a OrderNo table PdfPTable firstTable = new PdfPTable(4); //set overall width firstTable. WidthPercentage = 90f; //set column widths int[] firstTablecellwidth ={ 25, 25, 18, 32 }; firstTable. SetWidths(firstTablecellwidth);
Why not use a PdfPTable
object for this? Create a fixed width table and use a float array to set the widths of the columns
PdfPTable table = new PdfPTable(10); table.HorizontalAlignment = 0; table.TotalWidth = 500f; table.LockedWidth = true; float[] widths = new float[] { 20f, 60f, 60f, 30f, 50f, 80f, 50f, 50f, 50f, 50f }; table.SetWidths(widths); addCell(table, "SER.\nNO.", 2); addCell(table, "TYPE OF SHIPPING", 1); addCell(table, "ORDER NO.", 1); addCell(table, "QTY.", 1); addCell(table, "DISCHARGE PPORT", 1); addCell(table, "DESCRIPTION OF GOODS", 2); addCell(table, "LINE DOC. RECL DATE", 1); addCell(table, "CLEARANCE DATE", 2); addCell(table, "CUSTOM PERMIT NO.", 2); addCell(table, "DISPATCH DATE", 2); addCell(table, "AWB/BL NO.", 1); addCell(table, "COMPLEX NAME", 1); addCell(table, "G. W. Kgs.", 1); addCell(table, "DESTINATION", 1); addCell(table, "OWNER DOC. RECL DATE", 1); .... private static void addCell(PdfPTable table, string text, int rowspan) { BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false); iTextSharp.text.Font times = new iTextSharp.text.Font(bfTimes, 6, iTextSharp.text.Font.NORMAL, iTextSharp.text.BaseColor.BLACK); PdfPCell cell = new PdfPCell(new Phrase(text, times)); cell.Rowspan = rowspan; cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER; cell.VerticalAlignment = PdfPCell.ALIGN_MIDDLE; table.AddCell(cell); }
have a look at this tutorial too...
Try something like this
PdfPCell cell; PdfPTable tableHeader; PdfPTable tmpTable; PdfPTable table = new PdfPTable(10) { WidthPercentage = 100, RunDirection = PdfWriter.RUN_DIRECTION_LTR, ExtendLastRow = false }; // row 1 / cell 1 (merge) PdfPCell _c = new PdfPCell(new Phrase("SER. No")) { Rotation = -90, VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER, BorderWidth = 1 }; _c.Rowspan = 2; table.AddCell(_c); // row 1 / cell 2 _c = new PdfPCell(new Phrase("TYPE OF SHIPPING")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; table.AddCell(_c); // row 1 / cell 3 _c = new PdfPCell(new Phrase("ORDER NO.")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; table.AddCell(_c); // row 1 / cell 4 _c = new PdfPCell(new Phrase("QTY.")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; table.AddCell(_c); // row 1 / cell 5 _c = new PdfPCell(new Phrase("DISCHARGE PPORT")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; table.AddCell(_c); // row 1 / cell 6 (merge) _c = new PdfPCell(new Phrase("DESCRIPTION OF GOODS")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; _c.Rowspan = 2; table.AddCell(_c); // row 1 / cell 7 _c = new PdfPCell(new Phrase("LINE DOC. RECI. DATE")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; table.AddCell(_c); // row 1 / cell 8 (merge) _c = new PdfPCell(new Phrase("OWNER DOC. RECI. DATE")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; _c.Rowspan = 2; table.AddCell(_c); // row 1 / cell 9 (merge) _c = new PdfPCell(new Phrase("CLEARANCE DATE")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; _c.Rowspan = 2; table.AddCell(_c); // row 1 / cell 10 (merge) _c = new PdfPCell(new Phrase("CUSTOM PERMIT NO.")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; _c.Rowspan = 2; table.AddCell(_c); // row 2 / cell 2 _c = new PdfPCell(new Phrase("AWB / BL NO.")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; table.AddCell(_c); // row 2 / cell 3 _c = new PdfPCell(new Phrase("COMPLEX NAME")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; table.AddCell(_c); // row 2 / cell 4 _c = new PdfPCell(new Phrase("G.W Kgs.")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; table.AddCell(_c); // row 2 / cell 5 _c = new PdfPCell(new Phrase("DESTINATON")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; table.AddCell(_c); // row 2 / cell 7 _c = new PdfPCell(new Phrase("OWNER DOC. RECI. DATE")) { VerticalAlignment = Element.ALIGN_MIDDLE, HorizontalAlignment = Element.ALIGN_CENTER }; table.AddCell(_c); _doc.Add(table); /////////////////////////////////////////////////////////// _doc.Close();
You might need to re-adjust slightly on the widths and borders but that is a one shot to do.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With