Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I add two rows in a single pdf cell?

Tags:

c#

itextsharp

I am generatng barcode. Now I want to insert the student code under the barcode label. How can I do this?My code is

foreach (GridViewRow row in grdBarcode.Rows)
{
  DataList dl = (DataList)row.FindControl("datalistBarcode");
  PdfContentByte cb = new PdfContentByte(writer);
  PdfPTable BarCodeTable = new PdfPTable(6);
  BarCodeTable.SetTotalWidth(new float[] { 100,10,100,10,100,10 });
  BarCodeTable.DefaultCell.Border = PdfPCell.NO_BORDER;
  Barcode128 code128 = new Barcode128();
  code128.CodeType = Barcode.CODE128_UCC;
   foreach (DataListItem dli in dl.Items)
     {
        String barcodename= ((Label)dli.FindControl("lblBarCode")).Text;
        string studentcode= ((Label)dli.FindControl("lblStudCode")).Text;
        code128.Code = "*" + productID1 + "*";

        iTextSharp.text.Image image128 = code128.CreateImageWithBarcode(cb, null, null);
        BarCodeTable.AddCell(image128);
        BarCodeTable.AddCell("");           
    }
 doc.Add(BarCodeTable);

My present Output is enter image description here

I want to bring the Student code also under the barcode label. Please show me a way to achieve it

Or let me know how to pass more than one parameters throgh pdftable.Addcell() function..!!

like image 823
Semil Sebastian Avatar asked Nov 01 '22 00:11

Semil Sebastian


1 Answers

You are adding the Image object directly to a PdfPCell like this:

iTextSharp.text.Image image128 = code128.CreateImageWithBarcode(cb, null, null);
BarCodeTable.AddCell(image128);

The second line is a short cut for something that looks like this:

PdfPCell cell = new PdfPCell();
cell.SetImage(image128);
BarCodeTable.AddCEll(cell);

This cell contains nothing more than an image. There is no room for text.

If you want to combine an image and text, you need something like this:

PdfPCell cell = new PdfPCell();
cell.AddElement(image128);
Paragraph p = new Paragraph("Student name");
p.Alignment = Element.ALIGN_CENTER;
cell.AddElement(p);
BarCodeTable.AddCEll(cell);
like image 142
Bruno Lowagie Avatar answered Nov 15 '22 03:11

Bruno Lowagie