Type Default Value Read Only Description
[C#]
int

[Visual Basic]
Integer
  0 No The page number of the current page.

 

   

Notes
 

This property holds the current Page Number. The current page is the one that receives new objects as they are added to the document.

For example the methods AddText, AddLine, AddImage, FrameRect and FillRect all operate on the current page.

When you change this property the Pos property is reset to the top left of the current Rect.

Note that the PageNumber property is not the same as the Page property. The Page holds an Object ID typically returned from a call to AddPage. The PageNumber indicates the page using an index ranging between one and the PageCount.

Either the Page or the PageNumber property can be used to set the current page.

If no page is specified the current page is taken to be the first page in the document.

Optimization Tips.

PDF documents are optimized for fast access to pages. So when you go to a particular page of a document by specifying a PageNumber this operation is quick. It is especially quick for access to the next and previous pages as there are simple ways to find them given the current page.

However it is less obvious that getting the PageNumber property can be more expensive than one might think. ABCpdf cannot assume that the PDF is the same as it was last time you accessed the PageNumber so it cannot necessarily just give you the number it had last time. It has to assume the worst case which is that you have reorganized the pages in some way and at the very least it will have to validate the current PageNumber by a test retrieval of that page. At the very worst it will have to scan through the entire page tree looking to see where the current page has ended up.

In general getting the PageNumber is not too expensive. But if you write code which results in it being accessed thousands of times then it can become noticeable. So if you find yourself repeatedly getting the the PageNumber inside loops then consider saving the PageNumber in a separate variable and use that instead. It's an easy optimization to make.

 

 

   

Example
 

None.