Watermark PDFs
How to Add a Watermark to PDFs
Add a layer of security and protect confidential information with watermarks. Embedding a watermark to the page content makes it more difficult to tamper with than adding a watermark annotation. The resulting document is saved encrypted, with only print and view permissions. Define type style, font size, color and opacity as required.
Get Free Trial
C++
C#
Java
C++
DURING
APDFLDoc apdflInDoc(csInputFile.c_str(), true);
APDFLDoc apdflWaterMarkDoc(csInputWatermarkFile.c_str(), true);
ASInt32 nWatermarkPgNUm = 0;
PDPage pdPageWatermark= PDDocAcquirePage(apdflWaterMarkDoc.getPDDoc(), nWatermarkPgNUm);
PDPageRange pageRange;
pageRange.startPage = 0;
pageRange.endPage = PDLastPage;
pageRange.pageSpec = PPDAllPages;
PDDocAddWatermarkParamsRec watermarkParams;
memset(&watermarkParams, 0, sizeof(PDDocAddWatermarkParamsRec));
watermarkParams.size = sizeof(PDDocAddWatermarkParamsRec);
watermarkParams.targetRange = pageRange;
watermarkParams.Opacity = 0.5f;
watermarkParams.wtrmrkDrawOption = kPDWatermarkTryFormXObject;
PDDocAddWatermarkFromPDPage(apdflInDoc.getPDDoc(), pdPageWatermark, &watermarkParams);
// Save the document, and release resources.
apdflInDoc.saveDoc(csOutputFile.c_str());
PDPageRelease(pdPageWatermark);
HANDLER
errCode = ERRORCODE;
libInit.displayError(errCode);
END_HANDLER
C#
using (var watermarkDoc = new Document(sWatermark))
using (var doc = new Document(sInput))
{
WatermarkParams watermarkParams = new WatermarkParams()
{
WatermarkDrawOption = WatermarkDrawOption.TryFormXObject,
Opacity = 0.5f,
};
watermarkParams.TargetRange.PageSpec = PageSpec.AllPages;
using (var watermarkPage = watermarkDoc.GetPage(0))
doc.Watermark(watermarkPage, watermarkParams);
doc.Save(SaveFlags.Full , sOutput);
}
Java
Document watermarkDoc = new Document(sWatermark);
Document doc = new Document(sInput);
WatermarkParams watermarkParams = new WatermarkParams()
{{
setOpacity(0.5f);
}};
watermarkParams.getTargetRange().setPageSpec(PageSpec.ALL_PAGES);
doc.watermark(watermarkDoc.getPage(0), watermarkParams);
doc.save(EnumSet.of(SaveFlags.FULL), sOutput);