Back to Devexpress

How to: Add Different Watermarks to Document Pages

windowsforms-3430-controls-and-libraries-printing-exporting-examples-miscellaneous-how-to-add-different-watermarks-to-document-pages.md

latest4.9 KB
Original Source

How to: Add Different Watermarks to Document Pages

  • Nov 21, 2023
  • 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:

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.

View Example

cs
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;
        }

    }
}
vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports DevExpress.Drawing
Imports DevExpress.XtraPrinting
Imports DevExpress.XtraPrinting.Drawing
Imports DevExpress.XtraReports.UI
' ...

Namespace DifferentWatermarks
    Partial Public Class Form1
        Inherits Form
        Public Sub New()
            InitializeComponent()
        End Sub

        Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button1.Click
            ' Create a report and assign a watermark to it.
            Dim report As 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.
            Dim myPage As Page = 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()
        End Sub

        ' Create a watermark with the specified text.
        Private Function CreateTextWatermark(ByVal text As String, ByVal id As String) As Watermark
            Dim textWatermark As 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
        End Function

    End Class
End Namespace

See Also

How to: Add a Watermark to a Document