PrintPage Event

The event PrintPageEvent is fired before each page is printed; this allows the calling application to:

 

The PrintPageEvent event is NOT fired when doing page by page printing. For instance, using the StartPrint, PrintPage or EndPrint Methods.

This is because the code is already in exact control of the printing process.

 

 

Event Arguments

pageNumber

PageNumber is the one based index of the page to be printed.

continue

Set this parameter to 0 to skip, 1 to print, -1 to cancel.

 

 

Example

Public Class Form1
    Friend WithEvents AxPDFCreactiveX1 As AxACPDFCREACTIVEX.AxPDFCreactiveX = New AxACPDFCREACTIVEX.AxPDFCreactiveX()
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.Size = New System.Drawing.Size(400, 500)
 
        ' AxPDFCreactiveX1
        AxPDFCreactiveX1.Enabled = True
        AxPDFCreactiveX1.Location = New System.Drawing.Point(20, 20)
        AxPDFCreactiveX1.Name = "AxPDFCreactiveX1"
        AxPDFCreactiveX1.Parent = Me
        AxPDFCreactiveX1.Size = New System.Drawing.Size(360, 400)
        AxPDFCreactiveX1.TabIndex = 0
 
        ' Constants for Activation codes
        Const strLicenseTo As String = "Amyuni PDF Creator Evaluation"
        Const strActivationCode As String = "07EFCDAB010001004282943F2AF19A88F332D9E781E40460727DF8A42847A1BDE06DB61C71E94E2D90424BF8762385335F9D6884E9FC"
 
        ' Set license key
        AxPDFCreactiveX1.SetLicenseKey(strLicenseTo, strActivationCode)
 
        ' Create 4 additional pages
        For page = 2 To 5
            AxPDFCreactiveX1.AddPage(page)
        Next
 
        ' Create object in each Page
        For page = 1 To 5
            ' Set the current page
            AxPDFCreactiveX1.CurrentPage = page
 
            ' Create a Text in the current Page
            AxPDFCreactiveX1.CreateObject(ACPDFCREACTIVEX.ObjectTypeConstants.acObjectTypeText, "Text" + page.ToString)
            Dim oText As ACPDFCREACTIVEX.IacObject = AxPDFCreactiveX1.GetObjectByName("Text" + page.ToString)
            oText("Left") = 1000
            oText("Right") = 5000
            oText("Top") = 0
            oText("Bottom") = 4000
            oText("BorderColor") = &HFF00FF
            oText("BorderWidth") = ACPDFCREACTIVEX.acBorderWidth.acBorderWidthDouble
            oText("Text") = "Amyuni Technologies " + page.ToString
        Next
 
        ' Print all the document
        Dim PrinterName As String = ""  ' Default printer
        Dim Prompt As Integer = 0
        AxPDFCreactiveX1.Print(PrinterName, Prompt)
    End Sub
 
    Private Sub AxPDFCreactiveX1_PrintPageEvent(sender As Object, e As AxACPDFCREACTIVEX._IPDFCreactiveXEvents_PrintPageEvent) Handles AxPDFCreactiveX1.PrintPageEvent
        ' The following example will allow the control to save only the first 4 pages of the current document.
        MessageBox.Show("PrintPage event")
        If e.pageNumber < 5 Then
            e.continue = 1
        Else
            e.continue = 0
        End If
    End Sub
End Class
public partial class Form1 : Form
{
    AxACPDFCREACTIVEX.AxPDFCreactiveX axPDFCreactiveX1 = new AxACPDFCREACTIVEX.AxPDFCreactiveX();
 
    public Form1()
    {
        InitializeComponent();
    }
 
    private void Form1_Load(object sender, EventArgs e)
    {
        this.Size = new System.Drawing.Size(400, 500);
 
        // axPDFCreactiveX1
        axPDFCreactiveX1.Enabled = true;
        axPDFCreactiveX1.Location = new System.Drawing.Point(20, 20);
        axPDFCreactiveX1.Name = "axPDFCreactiveX1";
        axPDFCreactiveX1.Parent = this;
        axPDFCreactiveX1.Size = new System.Drawing.Size(360, 400);
        axPDFCreactiveX1.TabIndex = 0;
 
        // Events
        axPDFCreactiveX1.PrintPageEvent += new AxACPDFCREACTIVEX._IPDFCreactiveXEvents_PrintPageEventHandler(axPDFCreactiveX1_PrintPageEvent);
 
        // Constants for Activation codes
        const string strLicenseTo = "Amyuni PDF Creator Evaluation";
        const string strActivationCode = "07EFCDAB010001004282943F2AF19A88F332D9E781E40460727DF8A42847A1BDE06DB61C71E94E2D90424BF8762385335F9D6884E9FC";
 
        // Set license key
        axPDFCreactiveX1.SetLicenseKey(strLicenseTo, strActivationCode);
 
        // Create 4 additional pages
        for (int page = 2; page < 6; page++)
        {
            axPDFCreactiveX1.AddPage(page);
        }
 
        // Create object in each Page
        for (int page = 1; page < 6; page++)
        {
            // Set the current page
            axPDFCreactiveX1.CurrentPage = page;
 
            // Create a Text in the current Page
            axPDFCreactiveX1.CreateObject(ACPDFCREACTIVEX.ObjectTypeConstants.acObjectTypeText, "Text" + page.ToString());
            ACPDFCREACTIVEX.IacObject oText = axPDFCreactiveX1.GetObjectByName("Text" + page.ToString());
            oText["Left"] = 1000;
            oText["Right"] = 5000;
            oText["Top"] = 0;
            oText["Bottom"] = 4000;
            oText["BorderColor"] = 0xFF00FF;
            oText["BorderWidth"] = ACPDFCREACTIVEX.acBorderWidth.acBorderWidthDouble;
            oText["Text"] = "Amyuni Technologies " + page.ToString();
        }
 
        // Print all the document
        string PrinterName = "";  // Default printer
        int Prompt = 0;
        axPDFCreactiveX1.Print(PrinterName, Prompt);
    }
 
    private void axPDFCreactiveX1_PrintPageEvent(object sender, AxACPDFCREACTIVEX._IPDFCreactiveXEvents_PrintPageEvent e)
    {
        // The following example will allow the control to save only the first 4 pages of the current document.
        MessageBox.Show("PrintPage event");
        if (e.pageNumber < 5)
        {
            e.@continue = 1;
        }
        else
        {
            e.@continue = 0;
        }
    }
}
#import "c:\users\amyuni\pdfcreactivex.dll" no_namespace
 
using namespace std;
 
void CRedrawRect_CppDlg::OnBnClickedOk()
{
    IPDFCreactiveXPtr m_PDF;
 
    // TODO: Add extra initialization here
    m_PDF = GetDlgItem(IDC_PDFCREACTIVEX1)->GetControlUnknown();
 
    // Constants for Activation codes
    bstr_t strLicenseTo = "Amyuni PDF Creator Evaluation";
    bstr_t strActivationCode = "07EFCDAB010001004282943F2AF19A88F332D9E781E40460727DF8A42847A1BDE06DB61C71E94E2D90424BF8762385335F9D6884E9FC";
 
    // set license key
    m_PDF->SetLicenseKey(_bstr_t(strLicenseTo), _bstr_t(strActivationCode));
 
    // Create 4 additional pages
    for (int page = 2; page < 6; page++)
    {
        m_PDF->AddPage(page);
    }
 
    // Create object in each Page
    for (int page = 1; page < 6; page++)
    {
        // Set the current page
        m_PDF->CurrentPage = page;
 
        // Set-up variables for attributes
        _variant_t varAttribute;
        varAttribute.vt = VT_I4;  // integers
 
        // Create a text in the current Page
        m_PDF->CreateObject(acObjectTypeText, "Text" + bstr_t(page));
        IacObjectPtr oText = pdf->GetObjectByName("Text" + bstr_t(page));
        oText->Attribute["Left"] = 1000;
        oText->Attribute["Right"] = 5000;
        oText->Attribute["Top"] = 0;
        oText->Attribute["Bottom"] = 4000;
        varAttribute.lVal = 0xFF00FF;
        oText->Attribute["BorderColor"] = varAttribute;
        varAttribute.lVal = acBorderWidthDouble;
        oText->Attribute["BorderWidth"] = varAttribute;
        oText->Attribute["Text"] = "Amyuni Technologies" + bstr_t(page);
    }
 
    // Print all the document
    bstr_t PrinterName = "";  // Default printer
    long Prompt = 0;
    m_PDF->Print(PrinterName, Prompt);
}
 
BEGIN_EVENTSINK_MAP(CRedrawRect_CppDlg, CDialogEx)
    ON_EVENT(CRedrawRect_CppDlg, IDC_PDFCREACTIVEX1, 2, CRedrawRect_CppDlg::PrintPagePdfcreactivex1, VTS_I4 VTS_PI4)
END_EVENTSINK_MAP()
 
void CRedrawRect_CppDlg::PrintPagePdfcreactivex1(long PageNumber, long* Continue)
{
    // The following example will allow the control to save only the first 4 pages of the current document.
    MessageBox(_T("PrintPage event"), _T(""), MB_YESNO);
    if (PageNumber < 5)
    {
        *Continue = 1;
    }
    else
    {
        *Continue = 0;
    }
}