Garima
Garima

Reputation: 95

How to change watermark value dynamically itext pdf java

public class WatermarkPageEvent extends PdfPageEventHelper {

    private static Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 50, Font.NORMAL, BaseColor.LIGHT_GRAY);
    String date = new SimpleDateFormat("dd-MMM-yyyy").format(new Date());

    @Override
    public void onEndPage(PdfWriter writer, Document document) {
        ColumnText.showTextAligned(writer.getDirectContentUnder(),
                Element.ALIGN_CENTER,  new Phrase(date + ",Watermark", catFont),
                307.5f,370, 45f);
    }
}
    Document document = new Document();
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    PdfWriter pdfWriter = PdfWriter.getInstance(document, byteArrayOutputStream);
    document.open();
    pdfWriter.setPageEvent(new WatermarkPageEvent());

I want to change of value of "watermark" based on some query dynamically, presently it is fixed as "Watermark".

Upvotes: 0

Views: 624

Answers (1)

Garima
Garima

Reputation: 95

public class WatermarkPageEvent extends PdfPageEventHelper {

    private static Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 50, Font.NORMAL, BaseColor.LIGHT_GRAY);

    String date;
    String watermark;
    public WatermarkPageEvent(String date,String watermark) {
        super();
        this.date = date;
        this.watermark = watermark;
    }

    @Override
    public void onEndPage(PdfWriter writer, Document document) {
        ColumnText.showTextAligned(writer.getDirectContentUnder(),
                Element.ALIGN_CENTER,  new Phrase(date + watermark, catFont),
                307.5f,370, 45f);
    }
}

pdfWriter.setPageEvent(new WatermarkPageEvent(new SimpleDateFormat("dd-MMM-yyyy").format(new Date()),watermark));

Upvotes: 1

Related Questions