格式化 itextsharp table
Formatting itextsharp table
我有一个包含 2 列的给定 table,我尝试将其导出为 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);
输出如下所示:
如您所见,table 方向是从左到右,而不是从上到下。
我想要一个像这样的table,方向是从上到下,在页面底部起床并继续向左走,每隔一行涂上颜色:
解决方案概述
- 看tableheader,有4列
- 生成一个 iText table object,有 4 列
按从左到右、从上到下的顺序添加单元格
在你的情况下是:
Verkaufernummer, Betrag, Verkaufernummer, Betrag
1, 55.04, 50, 3.5
跟踪您当前正在渲染的行,根据行设置单元格的背景颜色(在您的逻辑中偶数与奇数)
我有一个包含 2 列的给定 table,我尝试将其导出为 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);
输出如下所示:
如您所见,table 方向是从左到右,而不是从上到下。
我想要一个像这样的table,方向是从上到下,在页面底部起床并继续向左走,每隔一行涂上颜色:
解决方案概述
- 看tableheader,有4列
- 生成一个 iText table object,有 4 列
按从左到右、从上到下的顺序添加单元格
在你的情况下是:
Verkaufernummer, Betrag, Verkaufernummer, Betrag
1, 55.04, 50, 3.5跟踪您当前正在渲染的行,根据行设置单元格的背景颜色(在您的逻辑中偶数与奇数)