Sometimes you might want to have different watermarks in the report output. To do this, you can use one of the following two options:
-
Use the ReportForNav.LoadWatermark (AL) or the ReportForNav.AddWatermark (JavaScript) functions in OnPreReport to set up the watermark per page:
- In AL: ReportForNav.LoadWatermark(<pageno>,<outstream>)
- In JavaScript: ReportForNav.AddWatermark(<pageno>,<blobfield>)
- Where pageno is interpreted as 0 = all, or 1… = page number
- Use the ReportForNav.Watermark.Image.Load(fromStream) (AL) or ReportForNav.Watermark.Image.Image = Rec.Blob (JavaScript) to set the watermark before page breaks in the OnAftergetRecord or Section trigger.
It is important that you call the function before the report runtime starts printing a new page (because the watermark is printed before that). If you call the function on a section trigger on a header document, the watermark is only printed on the next page. Instead, you must call the function from the OnPreDataItem or a footer trigger on the previous page.
For example: one watermark on the first page and another one on the other pages:
List – OnAfterGetRecord()
IF (ReportForNav.PageNo = 1) THEN
WatermarkFile.OPEN('C:\Nav Files\A.pdf')
ELSE
WatermarkFile.OPEN('C:\Nav Files\B.pdf');
WatermarkFile.CREATEINSTREAM(WatermarkStream);
ReportForNav.Watermark.Image.Load(WatermarkStream);
WatermarkFile.CLOSE;
You can also use the function to append different PDF documents to a data item. The ForNAV AppendPdf function adds the same PDF to all data items but if you print a blank page and use the ReportForNav.Watermark.Image.Load(fromStream) function for that page and load a blank watermark after it is printed, you can append a different PDF document for each record.
The post Adding different watermarks to each page appeared first on ForNAV.