PDDocument watermarkDoc = PDDocument.load("watermark.pdf"); //Assuming your empty document with watermark image in it. PDDocument realDoc = PDDocument.load("document-to-be-watermarked.pdf"); //Let's say this is your document that you want to watermark. For example sake, I am opening a new one, you would already have a reference to PDDocument if you are creating one Overlay overlay = new Overlay(); overlay.overlay(realDoc,watermarkDoc); watermarkDoc.save("document-now-watermarked.pdf");
import java.io.File; import java.util.HashMap; import org.apache.pdfbox.multipdf.Overlay; import org.apache.pdfbox.pdmodel.PDDocument; public class TestPDF { public static void main(String[] args) throws Exception{ PDDocument realDoc = PDDocument.load(new File("originaldocument.pdf")); //the above is the document you want to watermark //for all the pages, you can add overlay guide, indicating watermark the original pages with the watermark document. HashMap<Integer, String> overlayGuide = new HashMap<Integer, String>(); for(int i=0; i<realDoc.getNumberOfPages(); i++){ overlayGuide.put(i+1, "watermark.pdf"); //watermark.pdf is the document which is a one page PDF with your watermark image in it. //Notice here, you can skip pages from being watermarked. } Overlay overlay = new Overlay(); overlay.setInputPDF(realDoc); overlay.setOutputFile("final.pdf"); overlay.setOverlayPosition(Overlay.Position.BACKGROUND); overlay.overlay(overlayGuide); } }
PDDocument watermarkDoc = PDDocument.load(getServletContext() .getRealPath(templateFile)); Overlay overlay = new Overlay(); overlay.overlay(watermarkDoc, doc);
PDDocument overlayDoc = new PDDocument(); PDPage page = new PDPage(); overlayDoc.addPage(page); Overlay overlayObj = new Overlay(); PDFont font = PDType1Font.COURIER_OBLIQUE; PDPageContentStream contentStream = new PDPageContentStream(overlayDoc, page); contentStream.setFont(font, 50); contentStream.setNonStrokingColor(0); contentStream.beginText(); contentStream.moveTextPositionByAmount(200, 200); contentStream.drawString("deprecated"); // deprecated. Use showText(String text) contentStream.endText(); contentStream.close(); PDDocument originalDoc = PDDocument.load(new File("...inputfile.pdf")); overlayObj.setOverlayPosition(Overlay.Position.FOREGROUND); overlayObj.setInputPDF(originalDoc); overlayObj.setAllPagesOverlayPDF(overlayDoc); Map<Integer, String> ovmap = new HashMap<Integer, String>(); overlayObj.setOutputFile("... result-with-overlay.pdf"); overlayObj.overlay(ovmap); overlayDoc.close(); originalDoc.close();