How to Generate a Report Header at Runtime when Printing/Exporting a Control using DevExpress XtraPrinting Library in VB.NET

Using XtraPrinting library, we can achieve the following at runtime while Printing/Exporting a Control:

add additional information to the report; add a report header; specify a page header or footer; specify the paper size, margins, orientation, etc.

For this we have to import two namespaces:

Imports System.Drawing

Imports DevExpress.XtraPrinting

The code below demonstrates how to  a create a report with DevExpress Gridcontrol and

Generate the Report Header, Set the Paper Format, and

Add Custom Information to the Report at runtime using XtraPrinting library .

Let us assume that the name of the gridcontrol is “myGridControl”

' Create a PrintingSystem component.

Dim printingSystem As New DevExpress.XtraPrinting.PrintingSystem

Dim link As New DevExpress.XtraPrinting.PrintableComponentLink(printingSystem)

'Specify the control to be printed.

link.Component = gridControl

'Set the paper format.

link.PaperKind = System.Drawing.Printing.PaperKind.A4

'Add Custom Information

link.Landscape = True

link.VerticalContentSplitting =  DevExpress.XtraPrinting.VerticalContentSplitting.Smart

link.Margins.Bottom = 100

link.Margins.Top = 100

link.Margins.Left = 10

link.Margins.Right = 10

'Subscribe to the CreateReportHeaderArea event used to generate the report header.
AddHandler link.CreateReportHeaderArea, AddressOf link_CreateReportHeaderArea
' Generate the report.
link.CreateDocument()
' Show the report.
link.ShowPreview()
' to export the report to a PDF file
link.PrintingSystem.ExportToPdf("c:\gridcontrol.pdf")
'event used to generate the report header.
Private Shared Sub link_CreateReportHeaderArea(ByVal sender As System.Object, ByVal e As CreateAreaEventArgs) Dim reportHeader As String = "Report Header"
e.Graph.StringFormat = New BrickStringFormat(StringAlignment.Center)
e.Graph.Font = New Font("Tahoma", 14, FontStyle.Bold)
e.Graph.DrawString(reportHeader, Color.Black, rec, BorderSide.None)
New BrickStringFormat(StringAlignment.Center)New Font("Tahoma", 14, FontStyle.Bold) Dim rec As RectangleF = New RectangleF(0, 0, e.Graph.ClientPageSize.Width, 50)
End
Sub
150 150 Burnignorance | Where Minds Meet And Sparks Fly!