Наилучшим вариантом является iText
. Проверьте демонстрацию водяного знака здесь
Важная часть кода (где вставлена вода):
public class Watermark extends PdfPageEventHelper {
@Override
public void onEndPage(PdfWriter writer, Document document) {
// insert here your watermark
}
Внимательно прочитайте пример.
onEndPage()
метод будет чем-то вроде (в моих эмблемах-водяных знаках я использую com.itextpdf.text.Image;
):
Image image = Image.getInstance(this.getClass().getResource("/path/to/image.png"));
// set transparency
image.setTransparency(transparency);
// set position
image.setAbsolutePosition(absoluteX, absoluteY);
// put into document
document.add(image);