Add Watermark To PDF

While converting Excel file to pdf, you may have requirements to add watermark to pdf file. The following examples shows how to add text and image watermark to pdf while rendering to pdf.

Add text watermark to PDF

You can easily add text watermark to pdf by specifying text and the corresponding font. Also, you can set alignment, offset, rotation, opacity, foreground/background, and scale to page in RenderingWatermark.

//prepare a workbook with 3 pages.
Workbook wb = new Workbook();
wb.getWorksheets().get(0).getCells().get("A1").putValue("Page1");
int index = wb.getWorksheets().add();
wb.getWorksheets().get(index).getCells().get("A1").putValue("Page2");
index = wb.getWorksheets().add();
wb.getWorksheets().get(index).getCells().get("A1").putValue("Page3");
wb.getWorksheets().get(index).getPageSetup().setPaperSize(PaperSizeType.PAPER_A_3);
//create a font for watermark, and specify bold, italic, color.
RenderingFont font = new RenderingFont("Calibri", 68);
font.setItalic(true);
font.setBold(true);
font.setColor(Color.getBlue());
//create a watermark from text and the specified font.
RenderingWatermark watermark = new RenderingWatermark("Watermark", font);
//specify horizontal and vertical alignment
watermark.setHAlignment(TextAlignmentType.CENTER);
watermark.setVAlignment(TextAlignmentType.CENTER);
//specify rotation
watermark.setRotation(30);
//specify opacity
watermark.setOpacity(0.6f);
//specify the scale to page(e.g. 100, 50) in percent.
watermark.setScaleToPagePercent(50);
//spcify watermark for rendering to pdf.
PdfSaveOptions options = new PdfSaveOptions();
options.setWatermark(watermark);
wb.save("output_text_watermark.pdf", options);

Add image watermark to PDF

You can add image watermark to pdf just by specifying image bytes of an image. Also, you can set alignment, offset, rotation, opacity, foreground/background, and scale to page in RenderingWatermark.

//prepare a workbook with 3 pages.
Workbook wb = new Workbook();
wb.getWorksheets().get(0).getCells().get("A1").putValue("Page1");
int index = wb.getWorksheets().add();
wb.getWorksheets().get(index).getCells().get("A1").putValue("Page2");
index = wb.getWorksheets().add();
wb.getWorksheets().get(index).getCells().get("A1").putValue("Page3");
wb.getWorksheets().get(index).getPageSetup().setPaperSize(PaperSizeType.PAPER_A_3);
//create a watermark from image(you need to prepare image bytes).
RenderingWatermark watermark = new RenderingWatermark(imageBytes);
//specify offset to alignment.
watermark.setOffsetX(100);
watermark.setOffsetY(200);
//specify rotation
watermark.setRotation(30);
//specify watermark to background.
watermark.setBackground(true);
//specify opacity
watermark.setOpacity(0.6f);
//specify the scale to page(e.g. 100, 50) in percent.
watermark.setScaleToPagePercent(50);
//spcify watermark for rendering to pdf.
PdfSaveOptions options = new PdfSaveOptions();
options.setWatermark(watermark);
wb.save("oputput_image_watermark.pdf", options);