基本上,对于每个奇数行,显示X颜色。对于每个偶数行,显示Y颜色。
这就是所需的所有逻辑,但我似乎无法通过iTextsharp找到一个优雅的解决方案
我的表名是PdfPTable logotable
答案 0 :(得分:0)
你说“旋转”的意思是“交替”。这在iText in Action书的第5章中的示例AlternatingBackground中进行了解释。可以在此处找到该示例的C#版本:AlternatingBackground.cs
您创建了一个TableEvent实现,您可以为其定义此方法:
public void TableLayout(
PdfPTable table, float[][] widths, float[] heights,
int headerRows, int rowStart, PdfContentByte[] canvases
) {
int columns;
Rectangle rect;
int footer = widths.Length - table.FooterRows;
int header = table.HeaderRows - table.FooterRows + 1;
for (int row = header; row < footer; row += 2) {
columns = widths[row].Length - 1;
rect = new Rectangle(
widths[row][0], heights[row],
widths[row][columns], heights[row + 1]
);
rect.BackgroundColor = BaseColor.YELLOW;
rect.Border = Rectangle.NO_BORDER;
canvases[PdfPTable.BASECANVAS].Rectangle(rect);
}
}
您可以像这样使用此事件:
IPdfPTableEvent Pevent = new AlternatingBackground();
logotable.TableEvent = Pevent;
首先尝试独立示例以查看效果。然后根据自己的需要调整AlternatingBackground
类。