2011-02-04 15 views

risposta

46

Gli elementi del bordo di PdfPTable sono definiti dal PdfPCell che vengono aggiunti alla tabella. Ogni cella avrà il proprio stile/formattazione. Ecco l'API: http://api.itextpdf.com/

Esempio

PdfPTable table = new PdfPTable(2); 
PdfPCell cellOne = new PdfPCell(new Phrase("Hello")); 
PdfPCell cellTwo = new PdfPCell(new Phrase("World")); 

cellOne.setBorder(Rectangle.NO_BORDER); 
cellOne.setBackgroundColor(new Color(255,255,45)); 

cellTwo.setBorder(Rectangle.BOX); 

table.addCell(cellOne); 
table.addCell(cellTwo); 

Se volete maggiori dettagli sui valori/bordo rettangolare, date un'occhiata alla sezione Valori costanti IText per Rettangolo, qui: http://api.itextpdf.com/constant-values.html

+0

Grazie, è quello che volevo. – yogsma

+0

Ho provato entrambi in modo indipendente ed entrambi sembrano rendere invisibile il bordo. Qual è esattamente la differenza tra 'cellOne.setBorder (Rectangle.NO_BORDER);' e 'cellTwo.setBorder (Rectangle.BOX);'? – Qohelet

+0

grazie, funziona bene !! –

2
PdfPTable nestedTable = new PdfPTable(); 
    nestedTable.DefaultCell.Border = 0; 

    nestedTable.AddCell(new Phrase("First"); 
    nestedTable.AddCell(new Phrase("Second"); 
    nestedTable.AddCell(new Phrase("2515"); 

    PdfPCell nestCell= new PdfPCell(nestedTable); 
+0

'nestedTable.DefaultCell.Border = 0;' - che non sembra giusto. Dopo aver provato ho anche scoperto che non funziona. A meno che le proprietà DefaultCell e Border non siano pubbliche, ciò non potrebbe mai funzionare. – wmdvanzyl

+0

Potrebbe funzionare - ma solo in C# (vedendo il caso di proprietà e chiamate di metodo), mentre OP ha chiesto informazioni sulla soluzione Java. Inoltre, mancano le parentesi nelle righe 4-6. – mareckmareck

11

Nella mia app funziona così:

PdfPTable table = new PdfPTable(2); 
table.getDefaultCell().setBorder(0); 
... 
+2

Questo non ha funzionato per me. – wmdvanzyl

+2

'Rectangle.NO_BORDER' è uguale a' 0' Preferirei usare il nome delle costanti, più facile da leggere e sempre compatibile durante l'aggiornamento nella versione. – chillworld

+1

Questo metodo non sembra funzionare nella versione 5.5.6. La risposta di Sean è corretta: cellOne.setBorder (Rectangle.NO_BORDER); –

1

Il sotto funziona per me.

table.getDefaultCell().setBorderWidth(0f); 
+0

No, non funziona –

0

colore cella impostato bianco. cellOne.setBorderColor (BaseColor.WHITE);

Problemi correlati