2013-06-12 4 views
1

Я хотел бы создать таблицу с двумя ячейками с границами, которые имеют углы и половину средней части: enter image description hereспециальные клеточные границы в IText

Я играл с пунктирными линиями, но безрезультатно. Если бы кто-то мог указать мне в правильном направлении, это было бы хорошо.

ответ

1

Вам необходимо установить границы ячейки и использовать событие ячейки для рисования пользовательских границ. Вы можете найти несколько примеров: here.

Возьмем, к примеру, пример PressPreviews. Она определяет следующее событие ячейки:

public class MyCellEvent extends PdfPCellEvent { 
    public void cellLayout(PdfPCell cell, Rectangle position, 
      PdfContentByte[] canvases) { 
     float x1 = position.getLeft() + 2; 
     float x2 = position.getRight() - 2; 
     float y1 = position.getTop() - 2; 
     float y2 = position.getBottom() + 2; 
     PdfContentByte canvas = canvases[PdfPTable.LINECANVAS]; 
     canvas.rectangle(x1, y1, x2 - x1, y2 - y1); 
     canvas.stroke(); 
    } 
} 

Теперь, если вы cell.setCellEvent(new MyCellEvent()); ячейка будет иметь пользовательские границы: прямоугольник, который немного меньше, чем то, что вы обычно имеете с границей по умолчанию.

В вашем случае вам не нужен метод rectangle(). Вы не хотите получать координаты из переменной положения и использовать эти координаты в серии moveTo(), lineTo(), stroke() операций.

Смежные вопросы