Как нарисовать границу вокруг двух ячеек в таблице IText? - PullRequest
0 голосов
/ 28 декабря 2010

Я использую IText для создания PDF. Поэтому я использую следующий код для генерации таблицы:

    iTextSharp.text.Table aTable = new iTextSharp.text.Table(10, 7);

   //Row 1
   aTable.AddCell(new Cell("ANDC"), 0, 4);
   aTable.AddCell(new Cell("0.123"), 0, 5);

Теперь я хочу нарисовать границу вокруг этих двух ячеек. Я знаю, как нарисовать границу вокруг стола или отдельной ячейки, но как я могу сделать это вокруг двух ячеек?

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

1 Ответ

1 голос
/ 28 декабря 2010

Во-первых, PdfPTable и PdfPCell дают вам гораздо больший контроль, используйте их вместо этого.

Во-вторых, я рекомендую обработчик событий ячейки.Вам нужно будет отслеживать, какая ячейка является какой, поэтому вы можете нарисовать соответствующие штриховые рисунки в (только) подходящем времени / месте.

Ах, так как обработчики событий ячейки являются специфическими для ячейки, вы можете взбитьдругой - для левой и правой ячеек, или просто обработчик для второй, которая рисует с удвоенной собственной шириной ... или первая может записать свою ширину, а вторая может нарисовать обе с этой информацией, или ...

Вы поняли идею.

PdfPCell leftCell = new PdfPCell();
...
leftCell.setCellEvent(new MyLeftCellEvent());
myPdfPTable.addCell(leftCell);

PdfPCell rightCell = new PdfPCell();
...
rightCell.setCellEvent(new MyRightCellEvent());
myPdfPTable.addCell(rightCell);

Другой путь

Вы можете отключить определенные границы в PdfPCell (которые происходят из прямоугольника):

cell.disableSide(Rectangle.RIGHT);
otherCell.disableSide(Rectangle.LEFT);

НАМНОГО меньше кода.

...