2016-08-05 42 views
1

festlegen, wie umreißrand für pdf-Tabelle itext pdf javaWie eine umreißrand für pdf-Tabelle ItextPdf Java

________________________________________ 
| cell 1 cell2 cell3 cell4  |           
| cell 5 cell2 cell3 cell4  |           
| cell 9 cell2 cell3 cell4  |           
| cell 1 cell2 cell3 cell4  |           
| cell 1 cell2 cell3 cell4  |           
|________________________________________| 

Antwort

0

In iText 7 finden Chapter 5 des "iText 7: Bausteine" mit einstellen Tutorial, wo wir diese Tabelle zu erstellen: CellBorders

Table table2 = new Table(new float[]{2, 1, 1}); 
table2.setMarginTop(10); 
table2.setBorder(new SolidBorder(1)); 
table2.setWidthPercent(80); 
table2.setHorizontalAlignment(HorizontalAlignment.CENTER); 
table2.addCell(new Cell(1, 3) 
    .add("Cell with colspan 3").setBorder(Border.NO_BORDER)); 
table2.addCell(new Cell(2, 1) 
    .add("Cell with rowspan 2").setBorder(Border.NO_BORDER)); 
table2.addCell(new Cell() 
    .add("row 1; cell 1").setBorder(Border.NO_BORDER)); 
table2.addCell(new Cell() 
    .add("row 1; cell 2").setBorder(Border.NO_BORDER)); 
table2.addCell(new Cell() 
    .add("row 2; cell 1").setBorder(Border.NO_BORDER)); 
table2.addCell(new Cell() 
    .add("row 2; cell 2").setBorder(Border.NO_BORDER)); 
document.add(table2); 
0123:

enter image description here

Der Code kann hier gefunden werden

In iText 5 müssen Sie alle Grenzen der Zelle auf setzen, und Sie müssen den Rahmen einer Tabelle mithilfe eines Tabellenereignisses zeichnen. Dies wird in Kapitel 5 des Buches "iText in Action - Second Edition" erläutert, genauer in dem Beispiel PressPreviews.

Dies ist das Tabellenereignis benötigen Sie:

table.setTableEvent(new MyTableEvent()); 

sicher, dass die Zelle enthält keine Grenzen:

public class MyTableEvent implements PdfPTableEvent { 
    public void tableLayout(PdfPTable table, float[][] width, float[] height, 
      int headerRows, int rowStart, PdfContentByte[] canvas) { 
     float widths[] = width[0]; 
     float x1 = widths[0]; 
     float x2 = widths[widths.length - 1]; 
     float y1 = height[0]; 
     float y2 = height[height.length - 1]; 
     PdfContentByte cb = canvas[PdfPTable.LINECANVAS]; 
     cb.rectangle(x1, y1, x2 - x1, y2 - y1); 
     cb.stroke(); 
     cb.resetRGBColorStroke(); 
    } 
} 

Sie diese Veranstaltung wie diese auf den Tisch zu erklären!

Wichtig: Wenn Sie ein neues Projekt mit iText starten, sollten Sie iText 7 in Betracht ziehen. Wie Sie sehen können, gab es einige Änderungen an der API.

+0

wie Sie die Farbe des Tabellenrahmens in MyTableEvent IText 5 ändern. Derzeit ist die Farbe schwarz. – azhar