c# – Cell alignment in itextsharp

Question:

I have a problem and I can't find a solution, I'm using itextesharp in a windowsfroms application, I created a table with 7 cells and I would like to align some to the right and others to be centered. unfortunately I'm only able to align either all the cells to the right or the left. through the table.DefaultCell.HorizontalAlignment = 0; I will post the code. I would like to thank anyone who can help, as I really need to finish this report.

            PdfPTable tabela = new PdfPTable(7);
            PdfPCell celula = new PdfPCell();
            tabela.TotalWidth = 790f;
            //  celula.HorizontalAlignment = 1;
            tabela.DefaultCell.HorizontalAlignment = 0;
            tabela.LockedWidth = true;
            float[] widths = new float[] { 16F, 40f,45F,60F,15f, 15f, 15f };
            tabela.SetWidths(widths);
            tabela.HorizontalAlignment = 0;
            celula.HorizontalAlignment = 0;
            strSql= "  ";
            con = new SqlConnection(strcon);
            SqlCommand cmd2 = new SqlCommand(strSql, con);
            cmd2.Parameters.AddWithValue("@DataI", DateTime.Parse(mtbDtInicial.Text));
            cmd2.Parameters.AddWithValue("@DataF", DateTime.Parse(mtbDtFinal.Text));
            cmd2.Parameters.AddWithValue("@ifd", emn1);
            con.Open();
            SqlDataReader ler = cmd2.ExecuteReader();
            while (ler.Read())
            {
                tabela.AddCell (ler[4].ToString()); //conta a direita
                tabela.AddCell(ler[0].ToString());//título  a direita
                tabela.AddCell(ler[1].ToString());//subtitulo a direita
                tabela.AddCell(ler[2].ToString());//descr a direita
                tabela.AddCell(ler[6].ToString());//valor centralizado
                tabela.AddCell(ler[7].ToString());//perce centralizado
                tabela.AddCell(ler[8].ToString());//desp centralizado
            }
            document2.Add(tabela);

Answer:

I know it's a little late for your report to be delivered and I believe you've solved your problem, but I'll leave this answer as an aid to other users.

If you add a PdfPCell , the complete object, rather than just its contents, you can define other characteristics of the cell, such as alignment.

//Conta a direita
PdfPCell conta_cell = new PdfPCell(new Phrase(ler[4].ToString()));
conta_cell.HorizontalAlignment = PdfPCell.ALIGN_RIGHT;
tabela.AddCell(conta_cell); 

//título  a direita
PdfPCell titulo_cell = new PdfPCell(new Phrase(ler[0].ToString()));
titulo_cell.HorizontalAlignment = PdfPCell.ALIGN_RIGHT;
tabela.AddCell(titulo_cell);

...

//percentual centralizado
PdfPCell perce_cell = new PdfPCell(new Phrase(ler[7].ToString()));
perce_cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
tabela.AddCell(perce_cell);

...
Scroll to Top
AllEscort