iTextでPDFに透かし画像をいれる

package Chapter03StamUnder;

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

import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
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\\StampWatermark.pdf"));
//透かし画像
Image img = Image.getInstance("C:\\java\\image\\logo.jpg");
//透かしの位置決め
img.setAbsolutePosition(80, 420);
PdfContentByte under;
BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA,
BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
//総ページ数取得
int total = reader.getNumberOfPages() + 1;
//ページ数分だけ繰り返し、全ページを処理
for (int i = 1; i < total; i++) {
//アンダーコンテントを取得する
under = stamper.getUnderContent(i);
//透かし画像を追加する
under.addImage(img);
//ページ番号を追加する、フォント設定、位置設定
under.beginText();
under.setFontAndSize(bf, 12);
under.moveText(500, 810);
under.showText("page " + i + " of " + total);
under.endText();
}
stamper.close();
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
}