How to: Add Different Watermarks to Document Pages
- 2 minutes to read
The following example demonstrates how to specify a unique watermark for different pages in a report. You can do it in the following ways:
Assign the Page.WatermarkId property to the Watermark.Id value.
Call the Page.AssignWatermark method for the page whose watermark you want to change, and pass a new watermark to this method as a parameter.
Page.AssignWatermark
takes priority over Page.WatermarkId
.
If you want to remove the watermark from a particular page, pass a new empty watermark to the AssignWatermark method.
using System;
using System.Drawing;
using System.Windows.Forms;
using DevExpress.Drawing;
using DevExpress.XtraPrinting;
using DevExpress.XtraPrinting.Drawing;
using DevExpress.XtraReports.UI;
// ...
namespace DifferentWatermarks {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
// Create a report and assign a watermark to it.
XtraReport1 report = new XtraReport1();
report.Watermarks.Add(CreateTextWatermark("Common Watermark", "Watermark1"));
report.Watermarks.Add(CreateTextWatermark("Second Page", "Watermark2"));
report.CreateDocument();
// Add a custom watermark to the second page.
Page myPage = report.Pages[1];
myPage.WatermarkId = "Watermark2";
// Remove a watermark from the third page.
myPage = report.Pages[2];
myPage.AssignWatermark(new PageWatermark());
// Show the Print Preview.
report.ShowPreviewDialog();
}
// Create a watermark with the specified text.
private Watermark CreateTextWatermark(string text, string id) {
Watermark textWatermark = new Watermark();
textWatermark.Id = id;
textWatermark.Text = text;
textWatermark.TextDirection = DirectionMode.ForwardDiagonal;
textWatermark.Font = new DXFont(textWatermark.Font.Name, 40);
textWatermark.ForeColor = Color.DodgerBlue;
textWatermark.TextTransparency = 150;
textWatermark.TextPosition = WatermarkPosition.InFront;
return textWatermark;
}
}
}
See Also