2009-08-21 12 views

Répondre

11

Voici la solution. Merci Dylan McClung.

PdfWriter writer = ...; 
PdfContentByte cb = writer.getDirectContent(); 
cb.saveState(); 
cb.setColorStroke(Color.black); 
cb.rectangle(x,y,x1,y1); 
cb.stroke(); 
cb.restoreState(); 
+0

ce qui ne cb représente? – sdespolit

+0

ContentByte, iirc ... – canon

+1

'PdfContentByte cb = writer.getDirectContent();' –

3

Dans la version .NET, je viens de créer une table avec une bordure. Je sais que ce n'est pas Java mais peut-être que le code suivant vous aidera.

iTextSharp.text.Document document = new iTextSharp.text.Document(PageSize.LETTER, 20, 20, 20, 20); 
PdfPTable table; 
PdfPCell cell; 

// single element w/ border 
table = new PdfPTable(1); 
cell = new PdfPCell(new Phrase("BOLD WORDS", FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 11, Font.BOLD))); 
cell.BorderWidth = 2; 
cell.Padding = 5; 
cell.PaddingTop = 3; 
cell.HorizontalAlignment = Element.ALIGN_CENTER; 
table.AddCell(cell); 
table.SetWidthPercentage(new float[1] { 598f }, PageSize.LETTER); 
table.HorizontalAlignment = Element.ALIGN_CENTER; 
document.Add(table); 
+0

l'idée juste dessiner une cellule de table est pas si mal – Chris623

1
public static void drawRectangle(PdfContentByte content, float width, float height) { 
    content.saveState(); 
    PdfGState state = new PdfGState(); 
    state.setFillOpacity(0.6f); 
    content.setGState(state); 
    content.setRGBColorFill(0xFF, 0xFF, 0xFF); 
    content.setLineWidth(3); 
    content.rectangle(0, 0, width, height); 
    content.fillStroke(); 
    content.restoreState(); 
} 

de l'API de itext

0
private static void rect(PdfWriter writer) { 

    PdfContentByte cb = writer.getDirectContent(); 
      try { 
       cb.setFontAndSize(BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, false), 24); 
       cb.rectangle(140f,140f,280f,420f); 
       cb.stroke(); 
      } catch (DocumentException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
}