Это практически идентично добавлению верхнего или нижнего колонтитула.
Вам необходимо создать класс, который реализует PdfPageEvent
, а в OnPageEnd
захватить PdfContentByte страницы и нарисовать там свое изображение. Используйте абсолютную позицию.
Примечание: вы, вероятно, хотите наследовать от PdfPageEventHelper, у него есть пустые реализации всех событий страницы, поэтому вам просто нужно написать метод, который вам действительно нужен.
Примечание. Если ваше изображение не является в основном прозрачным, его нанесение поверх вашей страницы покроет многие вещи. IIRC («Если я правильно помню»), файлы PNG и GIF, добавленные iText, будут автоматически маскироваться, позволяя вещам, находящимся под ними, просвечивать.
Если вы хотите добавить непрозрачное изображение под всем, вы должны вместо OnStartPage()
переопределить.
Это Java, но его преобразование в основном заключается в использовании заглавных букв имен методов и обмене вызовами get / set для доступа к свойству.
Image watermarkImage = new Image(imgPath);
watermarkImage.setAbsolutePosition(x, y);
writer.setPageEvent( new MyPageEvent(watermarkImage) );
public MyPageEvent extends PdfPageEventHelper {
private Image waterMark;
public MyPageEvent(Image img) {
waterMark = img;
}
public void OnEndPage/*OnStartPage*/(PdfWriter writer, Document doc) {
PdfContentByte content = writer.getContent();
content.addImage( waterMark );
}
}