Я видел, как устанавливать округленные границы для ячейки таблицы в этом вопросе
Как создать округленный угловой стол с помощью iText\iTextSharp?
Но возможно ли сделать ячейку, у которой не будет границ, а цветной и округлый фон?
Для этого вам нужны события сотовой связи. В моей книге я приводил разные примеры. См. Например calendar.pdf:
Код Java для создания белых ячеек выглядит следующим образом:
class CellBackground implements PdfPCellEvent {
public void cellLayout(PdfPCell cell, Rectangle rect,
PdfContentByte[] canvas) {
PdfContentByte cb = canvas[PdfPTable.BACKGROUNDCANVAS];
cb.roundRectangle(
rect.getLeft() + 1.5f, rect.getBottom() + 1.5f, rect.getWidth() - 3,
rect.getHeight() - 3, 4);
cb.setCMYKColorFill(0x00, 0x00, 0x00, 0x00);
cb.fill();
}
}
Для версии С# этого кода перейдите в раздел Где я могу найти примеры С#? и нажмите на главу, соответствующую главе Java-версии примера.
Например, PdfCalendar.cs:
class CellBackground : IPdfPCellEvent {
public void CellLayout(
PdfPCell cell, Rectangle rect, PdfContentByte[] canvas
) {
PdfContentByte cb = canvas[PdfPTable.BACKGROUNDCANVAS];
cb.RoundRectangle(
rect.Left + 1.5f,
rect.Bottom + 1.5f,
rect.Width - 3,
rect.Height - 3, 4
);
cb.SetCMYKColorFill(0x00, 0x00, 0x00, 0x00);
cb.Fill();
}
}
Вы можете использовать это событие следующим образом:
CellBackground cellBackground = new CellBackground();
cell.CellEvent = cellBackground;
Теперь метод CellLayout()
будет выполняться в тот момент, когда ячейка отображается на странице.