2009-08-21 18 views

Antwort

11

Hier ist die Lösung. Danke 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

wofür steht cb stehen? – sdespolit

+0

ContentByte, iirc ... – canon

+1

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

3

In der .NET-Version erstelle ich einfach eine Tabelle mit einem Rahmen. Ich weiß, dass es nicht Java ist, aber vielleicht hilft dir der folgende Code.

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

die Idee nur eine Tabellenzelle Zeichnung ist nicht so schlimm – 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(); 
} 

Von API von 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(); 
      } 
} 
Verwandte Themen