既存のPDFの縮小版を新しいPDFに面付けする2
package Chapter03StamUnder;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.CMYKColor;
public class StamUnder {
public static void main(String[] args) {
//A4で新しいドキュメントを作成
Document document = new Document(PageSize.A4);
try {
//既存PDFの読み込み
PdfReader reader = new PdfReader("C:\\java\\sample.pdf");
//作成するPDF
PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("C:\\java\\CopyPageAsImage.pdf"));
//ドキュメントを開く
document.open();
//日本語フォント設定(英文だけならここは不要)
BaseFont bf = BaseFont.createFont("HeiseiKakuGo-W5","UniJIS-UCS2-HW-H",false);
Font font = new Font(bf,12);
//***最初のサムネイル:文字を追加する
document.add(new Paragraph("Chapter2 iTextとは",font));
// 1ページ目をインポートする
PdfImportedPage page = writer.getImportedPage(reader, 1);
// Imageでラップ(変換)
Image image = Image.getInstance(page);
// 40%縮小
image.scalePercent(40f);
// 枠線をつける(付けないとページ枠が見えない)
image.setBorder(Rectangle.BOX);
// 枠線の太さ設定
image.setBorderWidth(3f);
// 枠線の色の設定
CMYKColor color1 =new CMYKColor(0,0,0,256);
image.setBorderColor(color1);
// 最後にImageをドキュメントに追加
document.add(image);
//***2番目のサムネイル:文字を追加する
document.add(new Paragraph("Chapter3 はじめてのiText",font));
// 6ページ目をインポートする
page = writer.getImportedPage(reader, 6);
// Imageでラップ(変換)
image = Image.getInstance(page);
// 40%縮小
image.scalePercent(40f);
// 枠線をつける(付けないとページ枠が見えない)
image.setBorder(Rectangle.BOX);
// 枠線の太さ設定
image.setBorderWidth(3f);
// 枠線の色の設定
CMYKColor color2 =new CMYKColor(0,100,0,0);
image.setBorderColor(color2);
// 最後にImageをドキュメントに追加
document.add(image);
//***2番目のサムネイル:文字を追加する
document.add(new Paragraph("Chapter3 はじめてのiText",font));
// 6ページ目をインポートする
page = writer.getImportedPage(reader, 6);
// Imageでラップ(変換)
image = Image.getInstance(page);
// 40%縮小
image.scalePercent(40f);
// 枠線をつける(付けないとページ枠が見えない)
image.setBorder(Rectangle.BOX);
// 枠線の太さ設定
image.setBorderWidth(3f);
// 枠線の色の設定
CMYKColor color3 =new CMYKColor(0,100,0,0);
image.setBorderColor(color3);
// 最後にImageをドキュメントに追加
document.add(image);
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
document.close();
}
}