2017-06-22 11 views
-3

でiTextのを使用して、私はiTextのを使用して、このようなテーブルを生成したい:表ジェネレーション与えられた書式

最初の列は..... 1,2,3のように2列目の数字を持っている

enter image description here

ロール名などの属性名を持ち、最後の列には各属性に対応する実際のデータがあります。

+3

[なぜ誰かが私を助けることができますか?実際の質問ではありませんか?](http://meta.stackoverflow.com/q/284236) – EJoshuaS

+1

これまでに何を試みましたか? – scsere

+0

文書をお読みになりましたか? http://developers.itextpdf.com/content/itext-7-building-blocks/chapter-5-adding-abstractelement-objects-part-2 –

答えて

1

iTextを初めて使用したので、iTextの最新バージョンを使用する必要があります。それはiTextの7.0.3です:https://github.com/itext/itext7/releases

あなたはこのようになりますテーブルを作成したい: そのテーブルは、次のコードを使用して作成されたenter image description here

public static void main(String[] args) throws IOException { 
    PdfDocument pdf = new PdfDocument(new PdfWriter("table.pdf")); 
    Document document = new Document(pdf); 
    Table table = new Table(new float[]{1, 4, 4}); 
    table.setWidthPercent(50); 
    table 
     .addHeaderCell(
       new Cell().add("A") 
        .setTextAlignment(TextAlignment.CENTER)) 
     .addHeaderCell(
       new Cell().add("B") 
        .setTextAlignment(TextAlignment.CENTER)) 
     .addHeaderCell(
       new Cell().add("C") 
        .setTextAlignment(TextAlignment.CENTER)); 
    for (int i = 1; i < 11; i++) { 
     table 
      .addCell(
        new Cell().add(String.format("%s.", i)) 
        .setTextAlignment(TextAlignment.RIGHT) 
        .setBorderTop(Border.NO_BORDER) 
        .setBorderBottom(Border.NO_BORDER)) 
      .addCell(
        new Cell().add(String.format("key %s", i)) 
        .setBorderTop(Border.NO_BORDER) 
        .setBorderBottom(Border.NO_BORDER)) 
      .addCell(
        new Cell().add(String.format("value %s", i)) 
        .setBorderTop(Border.NO_BORDER) 
        .setBorderBottom(Border.NO_BORDER)); 
    } 
    table 
     .addFooterCell(
      new Cell().add("A") 
       .setTextAlignment(TextAlignment.CENTER)) 
     .addFooterCell(
      new Cell().add("B") 
       .setTextAlignment(TextAlignment.CENTER)) 
     .addFooterCell(
      new Cell().add("C") 
       .setTextAlignment(TextAlignment.CENTER)); 
    document.add(table); 
    document.close(); 
} 

pdfオブジェクトが低いのPDF構文をPdfWriterに書き込むレベルのPDFドキュメント。 pdfオブジェクトを使用してdocumentという名前のDocumentインスタンスを作成します。これは、ParagraphImageListなどのすべての種類のビルディングブロックを追加できる上位レベルのドキュメントで、その他のハイレベルオブジェクトです。

あなたの場合、テーブルを追加したいので、Tableインスタンスを作成します。我々は3つの列が必要なので、3つの要素を持つfloat配列を渡します。最初の列の幅は、2番目と3番目の列の幅の1/4です。テーブル上で利用可能な幅の50%をテーブルに収めたい。

ここでは、細胞を追加します。

  • ヘッダーセル:addHeaderCell()メソッドを使用して、
  • 体細胞:addCell()メソッドを使用して、そして
  • フッター細胞:addFooterCell()メソッドを使用しますが、細胞の3種類を追加することができます。

テーブルがページに収まらない場合、それは異なるページに分散され、ヘッダーとフッターのセルが繰り返されます。

これらのメソッドの1つに渡されるパラメータは、Cellです。各セルの配置、境界線などを変更することができます。利用可能なプロパティの詳細については、tutorialAPI documentationを参照してください。

関連する問題