Anuj Mehta Ответов: 2

Как установить разную ширину всех столбцов таблицы данных(пять столбцов) с помощью string builder append?


I am Generating PDF using ItextSmart on WEB APPLICATION,
Pdf is Generated from Database,

I want to Set Width of Columns Name & Value Like this,
Example to Generate PDF,

Sr No(Verry Small)| Description(Big) | Unit Rate(Medium) | Qty(Verry Small)| Price(Med)


Что я уже пробовал:

sb.Append("<tr>");
                for (int i = 0; i < dt2.Columns.Count; i++)
                {                    
                    string width = i == 1 ? "5" : "1"; // first column will be 50% and others 20%
                    sb.Append("<td colspan=" + width + " >");                   
                    sb.Append(dt2.Columns[i].ColumnName);
                    sb.Append("</td>");
                }
                sb.Append("</tr>");
                foreach (DataRow row in dt2.Rows)
                {
                    sb.Append("<tr>");                   
                    for (int i = 0,j = 0; i < dt2.Columns.Count; i++,j++)
                    {
                        string width = i == 1 ? "5" : "1";                       
                        sb.Append("<td  colspan=" + width + ">");                        
                        sb.Append(row[dt2.Columns[i].ColumnName]);
                        sb.Append("</td>");
                    }
                    sb.Append("</tr>");
                }

Karthik_Mahalingam

почему объединения, замените его ширина

Anuj Mehta

Я пытался
такие свойства, как width и rowspan, не работают

Karthik_Mahalingam

использовать  Ответить  кнопка, чтобы отправить комментарии/запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.

Anuj Mehta

да, конечно, сделано..

Anuj Mehta

Я хочу установить ширину столбцов Name & Value следующим образом,

Коль-1(Малочисленные)|Кол-12(Большой) | Цв-3(Средний) | Цв-4(Очень Малый)| Кол-5(Мед)

Karthik_Mahalingam

ладно

2 Ответов

Рейтинг:
8

Karthik_Mahalingam

пробовать

using iTextSharp.text;
using iTextSharp.text.pdf;
using System.Data;
using System.IO;

namespace B13
{ 
    class Program
    { 
        static void Main(string[] args)
        { 
            Document document = new Document(PageSize.A4, 10, 10, 10, 10);
            var pdfPath = @"D:\Projects\CP\CP\bin\Debug\aa.pdf";
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(pdfPath, FileMode.CreateNew));
            document.Open();

            DataTable dt = new DataTable();
            //Sr No(Verry Small)| Description(Big) | Unit Rate(Medium) | Qty(Verry Small)| Price(Med)
            dt.Columns.Add("Sr No");
            dt.Columns.Add("Description");
            dt.Columns.Add("Unit Rate");
            dt.Columns.Add("Qty");
            dt.Columns.Add("Price");
            dt.Rows.Add(1, "asdfasdfsadfsadfsadfsadfas", 2323, 1, 344);
            dt.Rows.Add(1, "asdfasdfsadfsadfsadfsadfas", 2323, 1, 344);
            dt.Rows.Add(1, "asdfasdfsadfsadfsadfsadfas", 2323, 1, 344);
            dt.Rows.Add(1, "asdfasdfsadfsadfsadfsadfas", 2323, 1, 344);
            PdfPTable table = new PdfPTable(dt.Columns.Count);
            float[] widths = new float[] { 20f, 60f, 20f, 30f, 30f };
            table.SetWidths(widths);
            foreach (DataColumn col in dt.Columns)
            { 
                table.AddCell(col.ColumnName);
            }        
                

            foreach (DataRow row in dt.Rows)
            {
                foreach (DataColumn col in dt.Columns)
                {
                    var value = row[col];
                    table.AddCell(value.ToString());
                }
            } 

            document.Add(table);
            document.Close();


        }
    }
}


относиться iTextSharp - введение таблиц[^]


Рейтинг:
18

massimiliano aronica

itextsharp имеет свой собственный класс для таблиц, PdfPTable, имеющий определенно простой способ форматирования столбцов и добавления строк/ячеек.

Взглянуть