2013-06-12 4 views
1

Je voudrais créer une table avec deux cellules avec des frontières qui prennent les coins et la moitié de la partie médiane: enter image description herebordures de cellules spéciales dans iText

J'ai joué avec des lignes en pointillés, mais en vain. Si certains pourraient me diriger dans la bonne direction, ce serait bien.

Répondre

1

Vous devez définir les limites de la cellule sur et utiliser un événement de cellule pour dessiner des bordures personnalisées. Vous pouvez trouver quelques exemples here. Prenez par exemple l'exemple PressPreviews. Il définit l'événement cellulaire suivant:

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(); 
    } 
} 

Maintenant, si vous faites cell.setCellEvent(new MyCellEvent()); la cellule aura une bordure personnalisée: un rectangle qui est légèrement plus petit que ce que vous auriez normalement avez avec la frontière par défaut.

Dans votre cas, vous n'avez pas besoin de la méthode rectangle(). Vous ne pouvez pas obtenir les coordonnées à partir de la variable de position et utiliser ces coordonnées dans une série d'opérations moveTo(), lineTo(), stroke().

Questions connexes