Javaを使ってPDFドキュメントにテーブルを追加する方法

##背景
この記事では、Javaプログラミングを介してPDFドキュメントにテーブルを追加する方法を紹介します。テーブルを追加するときに、テーブルの境界線、セルの配置、セルの背景色、セルの結合、画像の挿入、行の高さ、列の幅、フォント、フォントサイズなどの基本的な属性を設定できます。

##下準備

使用ツール：Free Spire.PDF for Java（無料版）

JARファイルの取得とインポート：
公式ウェブサイトからjarファイルパッケージをダウンロードします。ダウンロードした後、ファイルを解凍し、libフォルダー内のSpire.Pdf.jarファイルをJavaプログラムにインポートします。

##コード一覧
```
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.grid.PdfGrid;
import java.awt.*;

public class AddTable {
    public static void main(String[]args){
        //ドキュメントを作成し、PDFページを追加する
        PdfDocument pdf = new PdfDocument();
        PdfPageBase page = pdf.getPages().add();

        //PdfGridオブジェクトを作成する
        PdfGrid grid = new PdfGrid();

        //セルの余白、デフォルトのフォント、フォントの色、デフォルトの背景色を設定する
        grid.getStyle().setCellPadding(new PdfPaddings(3,3,3,3));
        grid.getStyle().setFont(new PdfTrueTypeFont(new Font("Yu Mincho", Font.BOLD,10), true));
        grid.getStyle().setTextBrush(PdfBrushes.getBlack());

        //PdfBordersオブジェクトを作成し、色と厚さを設定する
        PdfBorders borders= new PdfBorders();
        borders.setAll(new PdfPen(PdfBrushes.getBlack(),1f));

        //データを定義する
        String[] data = {"大学名称;Logo;場所;分類",
                "東京大学;;文京区;国立",
                "京都大学;;京都市;国立",
                "北海道大学;;札幌市;国立",
                "名古屋大学;;名古屋市;国立",
        };
        String[][] dataSource = new String[data.length][];
        for (int i = 0; i < data.length; i++) {
            dataSource[i] = data[i].split("[;]");
        }

        //テーブルにデータを入力する
        grid.setDataSource(dataSource);

        //表の2列目に画像を入力し、列幅を設定する
        grid.getRows().get(1).getCells().get(1).getStyle().setBackgroundImage(PdfImage.fromFile("C:\\Users\\Administrator\\Pictures\\01.png"));
        grid.getRows().get(2).getCells().get(1).getStyle().setBackgroundImage(PdfImage.fromFile("C:\\Users\\Administrator\\Pictures\\02.png"));
        grid.getRows().get(3).getCells().get(1).getStyle().setBackgroundImage(PdfImage.fromFile("C:\\Users\\Administrator\\Pictures\\03.png"));
        grid.getRows().get(4).getCells().get(1).getStyle().setBackgroundImage(PdfImage.fromFile("C:\\Users\\Administrator\\Pictures\\04.png"));
        grid.getColumns().get(1).setWidth(100f);

        //セルを垂直に結合する
        grid.getRows().get(1).getCells().get(3).setRowSpan(4);

        //テーブルを設定する
        for (int i = 0; i < data.length ; i++) {
            //各行の高さを設定する
            grid.getRows().get(i).setHeight(50f);
            //最初の列のフォントを設定する
            grid.getRows().get(i).getCells().get(0).getStyle().setFont(new PdfTrueTypeFont(new Font("Yu Mincho",Font.BOLD,12),true));

            for(int j =0;j<grid.getColumns().getCount();j++){
                //すべてのセルを中央に配置する
                grid.getRows().get(i).getCells().get(j).setStringFormat(new PdfStringFormat(PdfTextAlignment.Center,PdfVerticalAlignment.Middle));
                //最初の行の背景色を設定する
                grid.getRows().get(0).getCells().get(j).getStyle().setBackgroundBrush(PdfBrushes.getBeige());
            }
        }

        //PDFにテーブルを描画する
        grid.draw(page,0,30);

        //ドキュメントを保存する
        pdf.saveToFile("AddTable.pdf");
        pdf.close();

    }
}
```
**テーブルを追加した結果：**
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/14503b55-9ce8-e0d8-ef70-0d366edc7152.png)

以上はPDFドキュメントにテーブルを追加する方法でした、最後まで読んでいただき誠にありがとうございます。