2011-02-04 6 views
23

私は、Javaでpdfファイルを生成するためにiTextライブラリを使用しています。私はpdfptableにデータを書いていますが、どのようにしてテーブルの境界線を見えなくすることができますか?pdfptableの見えない境界

答えて

46

PdfPTableの境界要素は、テーブルに追加されるPdfPCellによって定義されます。各セルには独自のスタイル/書式があります。ここ はAPIです:http://api.itextpdf.com/

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

あなたは長方形/ボーダー値について詳しく説明したい場合は、ここでは、矩形のiTextの定数値のセクションを見てみましょう:http://api.itextpdf.com/constant-values.html

+0

ありがとうございました。 – yogsma

+0

私は両方とも独立して試してみましたが、両方とも境界が見えなくなるようです。 'cellOne.setBorder(Rectangle.NO_BORDER);と' cellTwo.setBorder(Rectangle.BOX);の違いは何ですか? – Qohelet

+0

ありがとうございます、うまく動作します! –

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;' - 正しく表示されません。テストの結果、私はそれが動作しないことがわかった。 DefaultCellとBorderプロパティがpublicでない限り、これは決してうまくいかないでしょう。 – wmdvanzyl

+0

これはうまくいく可能性がありますが、OPはJavaソリューションについて質問していますが、C#(PropertiesおよびMethod呼び出しの場合を参照)でのみ動作します。また、4-6行にカッコがありません。 – mareckmareck

11

それは次のように動作します。

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

これは私には役に立たなかった。 – wmdvanzyl

+2

'Rectangle.NO_BORDER'は' 0'と同じです。バージョンでのアップグレード時に定数名を使いやすく、読みやすく、常に互換性があります。 – chillworld

+1

この方法は、バージョン5.5.6では動作していません。 Seanの答えは正しい:cellOne.setBorder(Rectangle.NO_BORDER); –

1

以下は私のために働いています。

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

いいえ動作しません –

0

セットセルカラーホワイト。 cellOne.setBorderColor(BaseColor.WHITE);

関連する問題