既存のPDFの縮小版を新しいPDFに面付けする1

package Chapter03StamUnder;

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

import com.itextpdf.text.Document;
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.PdfWriter;

public class StamUnder {
public static void main(String[] args) {
//A4で新しいドキュメントを作成
Document document = new Document(PageSize.A4);
try {
PdfReader reader = new PdfReader("C:\\java\\sample.pdf");
PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("C:\\java\\CopyPageAsImage2.pdf"));
//ドキュメントを開く
document.open();
//PdfContentByteを取得する
PdfContentByte cb = writer.getDirectContent();
//インポートするページの入れ物PdfImportedPage
PdfImportedPage page;
//1ページ目をインポート
page = writer.getImportedPage(reader, 1);
cb.addTemplate(page, -0.5f, 0f, 0f, -0.5f, PageSize.A4.getWidth()/2, PageSize.A4.getHeight());
//2ページ目をインポート
page = writer.getImportedPage(reader, 2);
cb.addTemplate(page, 0.5f, 0f, 0f, 0.5f, 0f, 0f);
//3ページ目をインポート
page = writer.getImportedPage(reader, 3);
cb.addTemplate(page, 0.5f, 0f, 0f, 0.5f, PageSize.A4.getWidth()/2f, 0f);
//4ページ目をインポート
page = writer.getImportedPage(reader, 4);
cb.addTemplate(page, -0.5f, 0f, 0f, -0.5f, PageSize.A4.getWidth(), PageSize.A4.getHeight());
//点線を設定
cb.setLineDash(10, 5, 3);
//ページ左辺中央へ移動
cb.moveTo(0, PageSize.A4.getHeight()/2f);
//そのまま右へ直線描く
cb.lineTo(PageSize.A4.getWidth(), PageSize.A4.getHeight()/2f);
cb.stroke();
//ページ下辺中央へ移動
cb.moveTo(PageSize.A4.getWidth()/2f, 0);
//そのまま上へ直線描く
cb.lineTo(PageSize.A4.getWidth()/2f, PageSize.A4.getHeight());
cb.stroke();
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
//ドキュメントをクローズ
document.close();
}
}