Skip to main content

PdfViewerControl.QueryPageSettings Event

Occurs immediately before the PdfViewerControl.PrintPage event.

Namespace: DevExpress.Xpf.PdfViewer

Assembly: DevExpress.Xpf.PdfViewer.v24.1.dll

NuGet Package: DevExpress.Wpf.PdfViewer

Declaration

public event PdfQueryPageSettingsEventHandler QueryPageSettings

Event Data

The QueryPageSettings event's data class is PdfQueryPageSettingsEventArgs. The following properties provide information specific to this event:

Property Description
Cancel Specifies a value indicating whether the event should be canceled.
Handled Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route. Inherited from RoutedEventArgs.
OriginalSource Gets the original reporting source as determined by pure hit testing, before any possible Source adjustment by a parent class. Inherited from RoutedEventArgs.
PageNumber Gets the page number in a document.
PageSettings Specifies the page settings for the page to be printed.
PageSize Gets the size of the current page.
PrintAction Gets a value indicating what type of print operation is occurring.
PrintInGrayscale Gets or sets a value which indicates whether to print the document content in grayscale.
RoutedEvent Gets or sets the RoutedEvent associated with this RoutedEventArgs instance. Inherited from RoutedEventArgs.
Source Gets or sets a reference to the object that raised the event. Inherited from RoutedEventArgs.

The event data class exposes the following methods:

Method Description
InvokeEventHandler(Delegate, Object) When overridden in a derived class, provides a way to invoke event handlers in a type-specific way, which can increase efficiency over the base implementation. Inherited from RoutedEventArgs.
OnSetSource(Object) When overridden in a derived class, provides a notification callback entry point whenever the value of the Source property of an instance changes. Inherited from RoutedEventArgs.

Remarks

You can print each page of a document using different page settings. To access the page settings, use the PdfQueryPageSettingsEventArgs.PageSettings property.

To obtain the page number and page size for each printed page, use the PdfQueryPageSettingsEventArgs.PageNumber and PdfQueryPageSettingsEventArgs.PageSize properties, correspondingly.

Example

The code snippet below handles the QueryPageSettings and PrintPage events to specify the landscape orientation for a second page and add an image on each printed page.

using DevExpress.Xpf.PdfViewer;
using System.Drawing;
//...

private void pdfViewer_QueryPageSettings(DependencyObject d, PdfQueryPageSettingsEventArgs e)
{
    // Print the second page in landscape size.
    if (e.PageNumber == 2)
    {
        e.PageSettings.Landscape = true;
    }
    else e.PageSettings.Landscape = false;
}

private void pdfViewer_PrintPage(DependencyObject d, PdfPrintPageEventArgs e)
{
    // Draw a picture on each printed page.
    using (Bitmap image = new Bitmap(@"..\..\DevExpress.png"))
        e.Graphics.DrawImage(image, new RectangleF(10, 30, image.Width / 2, image.Height / 2));
}
See Also