2015-07-23 4 views
1

Мне нужна ваша помощь в применении нижней границы нижней границы только к ячейке и удалению других верхних, правых и левых границ. Я в состоянии реализовать пунктирные границы линии клеток, используя следующий код:Как применить нижнюю границу нижней строки к ячейке в iText

class DoubleCell implements PdfPCellEvent { 

    public void cellLayout(PdfPCell cell, Rectangle position, 

     PdfContentByte[] canvases) { 
     PdfContentByte canvas = canvases[PdfPTable.LINECANVAS]; 
     canvas.setLineDash(5f, 5f); 
     canvas.rectangle(position.getLeft(), position.getBottom(), 
         position.getWidth(), position.getHeight()); 
     canvas.stroke(); 

      } 
    } 

И код PDF является:

Paragraph tableParagraph = new Paragraph(); 
tableParagraph.setAlignment(Element.ALIGN_CENTER); 
PdfPTable table = new PdfPTable(2); 
table.getDefaultCell().setBorder(PdfPCell.NO_BORDER); 
Font total = new Font(Font.TIMES_ROMAN, 16); 
PdfPCell cel3a = new PdfPCell(new Paragraph("Total",total)); 
PdfPCell cel3b = new PdfPCell(new Paragraph("Cell 1",total)); 
cel3a.setBorder(Rectangle.NO_BORDER); 
cel3b.setBorder(Rectangle.NO_BORDER); 
cel3b.setCellEvent(new DoubleCell()); 
table.addCell(cel3a); 
table.addCell(cel3b); 
tableParagraph.add(table); 

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

ответ

1

В коде, вы рисуете прямоугольник:

canvas.rectangle(position.getLeft(), position.getBottom(), 
    position.getWidth(), position.getHeight()); 
canvas.stroke(); 

Если вы хотите нарисовать две линии, вам нужно нарисовать две линии:

// construct first line: 
canvas.moveTo(position.getLeft(), position.getBottom()); 
canvas.lineTo(position.getRight(), position.getBottom()); 
// construct second line (4 user units lower): 
canvas.moveTo(position.getLeft(), position.getBottom() - 4); 
canvas.lineTo(position.getRight(), position.getBottom() - 4); 
// draw lines 
canvas.stroke(); 

Пожалуйста адаптируются position.getBottom() и position.getBottom() - 4 если вы хотите, чтобы линии находились в другом положении. Вы также можете добавить некоторые дополнительные дополнения к своим ячейкам, чтобы разместить их для дополнительных линий.

+1

Спасибо .. Я многому учусь от вас – 99maas