Java  PDF 文書をコピーする方法

<p>今回はJavaでPDF 文書をコピーする方法を紹介します。Spire.PDF for Javaで実現するには、主に二つの方法があり、</p>
即ち：
<ol>
<li>同じ文書でページAからページＢ。</li>
<li>違う文書の場合、文書Aから文書Ｂ。</li>
</ol>
<p>というものになります。</p>
<p>では、始めましょう！</p>
<h4>下準備</h4>
<p> 1.E-iceblueの公式サイトから<a href="https://www.e-iceblue.com/Download/pdf-for-java.html">Free Spire.PDF for Java</a>無料版をダウンロードしてください。</p>
<p><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" /></p>
<p> 2.IDEを起動して新規プロジェクトを作成してから、インストールされたファイルにあった相応しいSpire.PDF.jarを参照に追加してください。</p>
<p><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" /></p>
<h4>同じ文書でページAからページＢ</h4>

```java

import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfMargins;
import com.spire.pdf.graphics.PdfTemplate;

import java.awt.*;
import java.awt.geom.Dimension2D;

public class Copy2 {
    public static void main(String[]args){
        //ファイルをロードします。
        PdfDocument pdf = new PdfDocument("test1.pdf");

        // 初めのページを取得して、これをテンプレートにします。
        PdfPageBase page = pdf.getPages().get(0);
        Dimension2D size = page.getSize();
        PdfTemplate template = page.createTemplate();

        //文書をループしてページテンプレート二枚を追加します。
        for(int i=0; i<2; i++){
            page = pdf.getPages().add(size, new PdfMargins(0));
            page.getCanvas().drawTemplate(template, new Point(0, 0));
        }

        //初めのページで描かれたテンプレートを挿入します。
        pdf.getPages().insert(0,size,new PdfMargins(0,0));
        pdf.getPages().get(0).getCanvas().drawTemplate(template,new Point(0,0));

        //保存します。
        pdf.saveToFile("result1.pdf",FileFormat.PDF);
    }
}
```

<h4>完成例</h4>
<p><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/l/lendoris/20201209/20201209151205.png" alt="f:id:lendoris:20201209151205p:plain" title="" class="hatena-fotolife" itemprop="image" /></p>
<h4>文書Aから文書Ｂ</h4>
<p>元のファイル</p>
<p><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/l/lendoris/20201209/20201209151243.png" alt="f:id:lendoris:20201209151243p:plain" title="" class="hatena-fotolife" itemprop="image" /></p>
<p><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/l/lendoris/20201209/20201209151313.png" alt="f:id:lendoris:20201209151313p:plain" title="" class="hatena-fotolife" itemprop="image" /></p>
```java
import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfMargins;
import com.spire.pdf.graphics.PdfTemplate;

import java.awt.*;
import java.awt.geom.Dimension2D;

public class Copy1 {
    public static void main(String[]args){
        //二つのPDFをロードします。
        PdfDocument pdf1 = new PdfDocument("test1.pdf");
        PdfDocument pdf2 = new PdfDocument("test2.pdf");

        //pdf1の初めのページを取得して、テンプレートを作成します。
        PdfPageBase page = pdf1.getPages().get(0);
        Dimension2D size = page.getSize();
        PdfTemplate template = page.createTemplate();

        //pdf2の初めのページでpdf1のテンプレートを挿入します。
        pdf2.getPages().insert(0,size,new PdfMargins(0,0));
        pdf2.getPages().get(0).getCanvas().drawTemplate(template,new Point(0,0));

        //pdf2を保存します。
        pdf2.saveToFile("result.pdf",FileFormat.PDF);
        pdf2.dispose();
    }
}
```
<h4>完成例 </h4>
<p><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/l/lendoris/20201209/20201209151411.png" alt="f:id:lendoris:20201209151411p:plain" title="" class="hatena-fotolife" itemprop="image" /></p>
<p> </p>