.NET Framework 4.5.2+
.NET Framework 4.5.2+
.NET Standard 2.0+

PdfPrintPageEventArgs.PageNumber Property

Returns the page number of the currently printed page.

Namespace: DevExpress.Pdf

Assembly: DevExpress.Pdf.v21.1.Drawing.dll

Declaration

public int PageNumber { get; }

Property Value

Type Description
Int32

An integer value that is the page number.

Example

This example shows how to customize print output and change settings for a page to be printed.

A document is printed with the specified initial printer settings using the PdfDocumentProcessor.Print method. In this example, the page numbers that should be printed in a document are specified using the PdfPrinterSettings.PageNumbers property.

When a page is printed, page settings for this page are queried via the PdfDocumentProcessor.QueryPageSettings event.

In this example, the second page of a document is printed in landscape orientation by setting the PdfQueryPageSettingsEventArgs.PageSettings.Landscape property to true when the PdfDocumentProcessor.QueryPageSettings event is handled.

When the document is sent to a printer, the PdfDocumentProcessor.PrintPage event is raised.

To draw an additional image on a printed page, the Graphics property of the PdfPrintPageEventArgs is used when the PdfDocumentProcessor.PrintPage event is handled. This image is drawn on each page by calling the Graphics.DrawImage method.

using DevExpress.Pdf;
using System.Drawing;

namespace CustomizePrintSettings {
    class Program {
        static void Main(string[] args) {

            // Create a PDF Document Processor instance and load a PDF into it.
            using (PdfDocumentProcessor documentProcessor = new PdfDocumentProcessor()) {
                documentProcessor.LoadDocument(@"..\..\Demo.pdf");

                // Declare the PDF printer settings.
                PdfPrinterSettings settings = new PdfPrinterSettings();

                // Specify the page numbers to be printed.
                settings.PageNumbers = new int[] { 1, 2, 3, 4, 5, 6 };

                // Handle the PrintPage event to specify print output.
                documentProcessor.PrintPage += OnPrintPage;

                // Handle the QueryPageSettings event to customize settings for a page to be printed.
                documentProcessor.QueryPageSettings += OnQueryPageSettings;

                // Print the document using the specified printer settings.
                documentProcessor.Print(settings);

                // Unsubscribe from PrintPage and QueryPageSettings events. 
                documentProcessor.PrintPage -= OnPrintPage;
                documentProcessor.QueryPageSettings -= OnQueryPageSettings;
            }
        }

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

        // Specify what happens when the PrintPage event is raised.
        private static void OnPrintPage(object sender, 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