多行的常量列

时间:2014-04-05 08:21:56

标签: c# pdf itext

我在pdf中添加了一个表格。我有3行3列。我希望第一列只出现一次作为所有行的单个单元格。我该怎么做?我的代码如下。我的输出应该像公司专栏中的Deloitte一样,如图所示:

enter image description here

        PdfPTable table = new PdfPTable(dt.Columns.Count);
        PdfPRow row = null;
        float[] widths = new float[] { 4f, 4f, 4f };
        table.SetWidths(widths);
        table.WidthPercentage = 100;
        int iCols = 0;
        string colname = "";
        PdfPCell cells = new PdfPCell(new Phrase("Products"));
        cells.Colspan = dt.Columns.Count;

        foreach (DataColumn c in dt.Columns)
        {

            table.AddCell(new Phrase(c.ColumnName, fontbold));
        }

        foreach (DataRow r in dt.Rows)
        {
            if (dt.Rows.Count > 0)
            {
                table.AddCell(new Phrase(r[0].ToString(), font5));
                table.AddCell(new Phrase(r[1].ToString(), font5));
                table.AddCell(new Phrase(r[2].ToString(), font5));
            }
        } document.Add(table);

1 个答案:

答案 0 :(得分:1)

我书中的MyFirstTable示例完全符合您的需要。移植到C#,它看起来像这样:

PdfPTable table = new PdfPTable(3);
// the cell object
PdfPCell cell;
// we add a cell with colspan 3
cell = new PdfPCell(new Phrase("Cell with colspan 3"));
cell.Colspan = 3;
table.AddCell(cell);
// now we add a cell with rowspan 2
cell = new PdfPCell(new Phrase("Cell with rowspan 2"));
cell.Rowspan = 2;
table.AddCell(cell);
// we add the four remaining cells with addCell()
table.AddCell("row 1; cell 1");
table.AddCell("row 1; cell 2");
table.AddCell("row 2; cell 1");
table.AddCell("row 2; cell 2");

您可以查看生成的PDF here。在您的情况下,您需要

cell.Rowspan = 6;

对于具有Deloitte值的单元格。