Imports GemBox.Document Module GemBoxDocumentHelper Public Sub AddWatermark(section As Section, imagePath As String) Dim doc = section.Document ' Create a Picture element for watermark. Dim watermarkPicture = New Picture(doc, imagePath) ' Set Picture's size to full page. watermarkPicture.Layout = New FloatingLayout( New HorizontalPosition(HorizontalPositionType.Absolute, HorizontalPositionAnchor.Page), New VerticalPosition(VerticalPositionType.Absolute, VerticalPositionAnchor.Page), New GemBox.Document.Size(section.PageSetup.PageWidth, section.PageSetup.PageHeight) ) With {.WrappingStyle = TextWrappingStyle.BehindText} ' If default header exists add Picture element to it otherwise ' create a new default header with the Picture element. Dim header = section.HeadersFooters(HeaderFooterType.HeaderDefault) If header Is Nothing Then section.HeadersFooters.Add( New HeaderFooter(doc, HeaderFooterType.HeaderDefault, New Paragraph(doc, watermarkPicture))) Else header.Blocks.Add(New Paragraph(doc, watermarkPicture)) End If ' Additionally check if first or even headers exist ' in case they do add a copy of the Picture element. header = section.HeadersFooters(HeaderFooterType.HeaderFirst) If header IsNot Nothing Then header.Blocks.Add(New Paragraph(doc, watermarkPicture.Clone())) End If header = section.HeadersFooters(HeaderFooterType.HeaderEven) If header IsNot Nothing Then header.Blocks.Add(New Paragraph(doc, watermarkPicture.Clone())) End If End Sub End Module