如何动态改变水印值 itext pdf java

问题描述 投票:0回答:1
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());

我想根据一些查询动态地改变 "水印 "的值,目前它被固定为 "水印"。

java spring-boot itext itext7 watermark
1个回答
1
投票
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));

© www.soinside.com 2019 - 2024. All rights reserved.