Java PDF文書を作成

<p><strong>こんにちは！最近、新型コロナウイルスの感染が拡大しているようなもので、皆さん、くれぐれもご自愛ください。</strong></p>
<p><strong>さて、今日はJavaについての話です。JavaでSpire.PDF for Javaを利用して、PDFを作成する方法、そしてコードを紹介してさしあげましょう。</strong></p>
<p><strong> </strong></p>
<h4><strong>下準備</strong></h4>
<p><strong> 1.E-iceblueの公式サイトから</strong><a href="https://www.e-iceblue.com/Download/pdf-for-java.html"> Spire.PDF for Java</a><strong>無料版をダウンロードしてください。</strong></p>
<p><strong><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/l/lendoris/20201209/20201209123832.png" alt="f:id:lendoris:20201209123832p:plain" title="" class="hatena-fotolife" itemprop="image" /></strong></p>
<p><strong> 2.IDEを起動して新規プロジェクトを作成してから、インストールされたファイルにあった相応しいSpire.PDF.jarを参照に追加してください。</strong></p>
<p><strong> </strong></p>
<p><strong><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/l/lendoris/20201209/20201209123843.png" alt="f:id:lendoris:20201209123843p:plain" title="" class="hatena-fotolife" itemprop="image" /></strong></p>
<h4><strong>サンプルコード</strong></h4>
<p><strong> </strong></p>
<p><strong>文字や文章の形式を設定するなどのコードも含まれています。</strong></p>

```java

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;

import java.awt.*;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.io.*;

public class CreatePdfDocumentInJava {

    public static void main(String[] args) throws FileNotFoundException, IOException  {

        //PdfDocumentを作成します。
        PdfDocument doc = new PdfDocument();

        //ページを追加します。
        PdfPageBase page = doc.getPages().add();

        //タイトルのテキストです。
        String heading = "秋";

        // solid brush objectsを作成します。
        PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.BLUE));
        PdfSolidBrush brush2 = new PdfSolidBrush(new PdfRGBColor(Color.BLACK));

        //フォントを設定します。
        PdfTrueTypeFont font1= new PdfTrueTypeFont(new Font("Ms Mincho",Font.PLAIN,20));
        PdfTrueTypeFont font2= new PdfTrueTypeFont(new Font("Ms Mincho",Font.PLAIN,12));

        //PdfStringFormat クラスを通してテキストレイアウト設定します。
        PdfStringFormat format1 = new PdfStringFormat();
        format1.setAlignment(PdfTextAlignment.Center);

        //タイトルを用紙の真ん中に設置します。
        page.getCanvas().drawString(heading, font1, brush1, new Point2D.Float((float)page.getActualBounds(true).getWidth()/2, 0),format1);

        //テキスト本文をインポートします。
        String body = readFileToString("file.txt");

        // PdfTextWidget objectを作成します。
        PdfTextWidget widget = new PdfTextWidget(body, font2, brush2);

        //テキストがある場所で rectangleを作成します。
        Rectangle2D.Float rect = new Rectangle2D.Float(0, 30, (float)page.getActualBounds(true).getWidth(),(float)page.getActualBounds(true).getHeight());

        //PdfLayoutTypeメッソドで 自動的にページ数をつけることができます。

        PdfTextLayout layout = new PdfTextLayout();
        layout.setLayout(PdfLayoutType.Paginate);

        //本文のテキストを配置します。 
        widget.draw(page, rect, layout);

        //ファイルを保存します。
        doc.saveToFile("output/CreatePdf.pdf");
    }

    //カスタムメソッドでテキストを読み取ります。
    private static String readFileToString(String filepath) throws FileNotFoundException, IOException {

        StringBuilder sb = new StringBuilder();
        String s ="";
        BufferedReader br = new BufferedReader(new FileReader(filepath));

        while( (s = br.readLine()) != null) {
            sb.append(s + "\n");
        }
        br.close();
        String str = sb.toString();
        return str;
    }
}
```
<h4><strong> 完成例</strong></h4>
<p><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/l/lendoris/20201209/20201209124054.png" alt="f:id:lendoris:20201209124054p:plain" title="" class="hatena-fotolife" itemprop="image" /></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p> </p>
<p><strong> </strong></p>