Как ввести округлые ячейки с цветом фона?

1

Я видел, как устанавливать округленные границы для ячейки таблицы в этом вопросе

Как создать округленный угловой стол с помощью iText\iTextSharp?

Но возможно ли сделать ячейку, у которой не будет границ, а цветной и округлый фон?

Теги:
pdf
itextsharp

1 ответ

2
Лучший ответ

Для этого вам нужны события сотовой связи. В моей книге я приводил разные примеры. См. Например calendar.pdf:

Изображение 174551

Код 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() будет выполняться в тот момент, когда ячейка отображается на странице.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню