最初のページに1ページ追加し、後ろのページを縮小して貼付ける

package Chapter03StamUnder;

import java.io.FileOutputStream;
import java.io.IOException;

import com.itextpdf.text.DocumentException;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;

public class StamUnder {
public static void main(String[] args) {
try {
PdfReader reader = new PdfReader("C:\\java\\sample.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("C:\\java\\CopyPage.pdf"));
//コピーしたページ
PdfImportedPage p;
//コピーしたページを貼り付けるための台紙のページを先頭に挿入する
stamper.insertPage(1, PageSize.A4);
//最上位層PdfContentByteを取得
PdfContentByte cb = stamper.getOverContent(1);
//2ページ目をコピーして張り付ける
p = stamper.getImportedPage(reader, 2);
cb.addTemplate(p, 0.4f, 0f, 0f, 0.4f, 36f, 450f);
//3ページ目をコピーして張り付ける
p = stamper.getImportedPage(reader, 3);
cb.addTemplate(p, 0.4f, 0f, 0f, 0.4f, 300f, 450f);
//4ページ目をコピーして張り付ける
p = stamper.getImportedPage(reader, 4);
cb.addTemplate(p, 0.4f, 0f, 0f, 0.4f, 36f, 36f);
//5ページ目をコピーして張り付ける
p = stamper.getImportedPage(reader, 5);
cb.addTemplate(p, 0.4f, 0f, 0f, 0.4f, 300f, 36f);
stamper.close();
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
}