形成itextsharp表

时间:2017-05-16 12:47:49

标签: itext pdf-generation

我有一个包含2列的给定表,我尝试将其导出为pdf。

这是我的代码:

 PdfPTable tableUebersicht = new PdfPTable(dtUebersicht100.Columns.Count);
                    tableUebersicht.SetWidths(new float[] { 250, 420 });
                    tableUebersicht.LockedWidth = true;
                    tableUebersicht.TotalWidth = 500f;

                    foreach (DataColumn c in dtUebersicht100.Columns)
                    {
                        PdfPCell Spalte = new PdfPCell(new Phrase(c.ColumnName, VerdanaFont));
                        Spalte.HorizontalAlignment = Element.ALIGN_CENTER;
                        Spalte.VerticalAlignment = Element.ALIGN_MIDDLE;
                        table.AddCell(Spalte);
                    }
foreach (DataRow dr in dtUebersicht100.Rows)
                    {
                        PdfPCell Spalte0 = new PdfPCell(new Phrase(dr[0].ToString(), VerdanaFont));
                        Spalte0.HorizontalAlignment = Element.ALIGN_CENTER;
                        Spalte0.VerticalAlignment = Element.ALIGN_MIDDLE;

                        double Double1 = Convert.ToDouble(dr[1].ToString());
                        PdfPCell Spalte1 = new PdfPCell(new Phrase(string.Format("{0:C2}", Double1), VerdanaFont));
                        Spalte1.HorizontalAlignment = Element.ALIGN_RIGHT;
                        Spalte1.VerticalAlignment = Element.ALIGN_MIDDLE;

                        table.AddCell(Spalte0);
                        table.AddCell(Spalte1);
                     }

table.WriteSelectedRows(0, -1, 35, 757, cb);

输出如下: enter image description here

正如您所看到的,表格方向是从左到右,而不是从上到下。

我想有一张这样的桌子,方向是向下的,在页面的底部起床并继续左边,每隔一行着色:

enter image description here

由于

1 个答案:

答案 0 :(得分:3)

解决方案概述

  • 查看表头,有4列
  • 生成一个包含4列
  • 的iText表对象
  • 按照从左到右,从上到下的顺序添加单元格 在你的情况下将是:
    Verkaufernummer,Betrag,Verkaufernummer,Betrag
    1,55.04,50,3.5

  • 跟踪您当前正在渲染的行,具体取决于行,设置单元格的背景颜色(在您的逻辑中甚至是奇数)