![]() |
#include <PageLabel.h>
Public Types | |
enum | Style { e_decimal, e_roman_uppercase, e_roman_lowercase, e_alphabetic_uppercase, e_alphabetic_lowercase, e_none } |
Public Member Functions | |
PageLabel (SDF::Obj l=0, int first_page=-1, int last_page=-1) | |
Create a PageLabel and initialize it using given Cos/SDF object. | |
PageLabel (const PageLabel &d) | |
Copy constructor. | |
PageLabel & | operator= (const PageLabel &d) |
Assignment operator. | |
bool | operator== (const PageLabel &d) |
Compares two PageLabel-s for equality. | |
bool | IsValid () const |
UString | GetLabelTitle (int page_num) |
void | SetStyle (Style style) |
Sets the numbering style for the label. | |
Style | GetStyle () const |
UString | GetPrefix () const |
void | SetPrefix (const UString &prefix) |
int | GetStart () const |
void | SetStart (int start_at) |
int | GetFirstPageNum () |
int | GetLastPageNum () |
SDF::Obj | GetSDFObj () const |
Static Public Member Functions | |
static PageLabel | Create (SDF::SDFDoc &doc, Style style, const UString &prefix="", int start_at=1) |
Creates a new PageLabel. |
This is used to allow for non-sequential page numbering or the addition of arbitrary labels for a page (such as the inclusion of Roman numerals at the beginning of a book). PDFNet PageLabel object can be used to specify the numbering style to use (for example, upper- or lower-case Roman, decimal, and so forth), the starting number for the first page, and an arbitrary prefix to be pre-appended to each number (for example, "A-" to generate "A-1", "A-2", "A-3", and so forth.)
PageLabel corresponds to the PDF Page Label object (Section 8.3.1, 'Page Labels' in the PDF Reference Manual.
Each page in a PDF document is identified by an integer page index that expresses the page’s relative position within the document. In addition, a document may optionally define page labels to identify each page visually on the screen or in print. Page labels and page indices need not coincide: the indices are fixed, running consecutively through the document starting from 1 for the first page, but the labels can be specified in any way that is appropriate for the particular document. For example, if the document begins with 12 pages of front matter numbered in roman numerals and the remainder of the document is numbered in Arabic, the first page would have a page index of 1 and a page label of i, the twelfth page would have index 12 and label xii, and the thirteenth page would have index 13 and label 1.
For purposes of page labeling, a document can be divided into labeling ranges, each of which is a series of consecutive pages using the same numbering system. Pages within a range are numbered sequentially in ascending order. A page's label consists of a numeric portion based on its position within its labeling range, optionally preceded by a label prefix denoting the range itself. For example, the pages in an appendix might be labeled with decimal numeric portions prefixed with the string "A-" and the resulting page labels would be "A-1", "A-2",
// Create a page labeling scheme that starts with the first page in // the document (page 1) and is using uppercase roman numbering // style. doc.SetPageLabel(1, PageLabel::Create(doc, PageLabel::e_roman_uppercase, "My Prefix ", 1)); // Create a page labeling scheme that starts with the fourth page in // the document and is using decimal Arabic numbering style. // Also the numeric portion of the first label should start with number // 4 (otherwise the first label would be "My Prefix 1"). PageLabel L2 = PageLabel::Create(doc, PageLabel::e_decimal, "My Prefix ", 4); doc.SetPageLabel(4, L2); // Create a page labeling scheme that starts with the seventh page in // the document and is using alphabetic numbering style. The numeric // portion of the first label should start with number 1. PageLabel L3 = PageLabel::Create(doc, PageLabel::e_alphabetic_uppercase, "My Prefix ", 1); doc.SetPageLabel(7, L3); // Read page labels from an existing PDF document. PageLabel label; for (int i=1; i<=doc.GetPageCount(); ++i) { label = doc.GetPageLabel(i); if (label.IsValid()) { UString title = label.GetLabelTitle(i); }
pdftron::PDF::PageLabel::PageLabel | ( | SDF::Obj | l = 0 , |
|
int | first_page = -1 , |
|||
int | last_page = -1 | |||
) |
Create a PageLabel and initialize it using given Cos/SDF object.
pdftron::PDF::PageLabel::PageLabel | ( | const PageLabel & | d | ) |
Copy constructor.
static PageLabel pdftron::PDF::PageLabel::Create | ( | SDF::SDFDoc & | doc, | |
Style | style, | |||
const UString & | prefix = "" , |
|||
int | start_at = 1 | |||
) | [static] |
Creates a new PageLabel.
doc | A document to which the page label is added. | |
style | The numbering style for the label. | |
prefix | The string used to prefix the numeric portion of the page label. | |
start_at | the value to use when generating the numeric portion of the first label in this range; must be greater than or equal to 1. |
bool pdftron::PDF::PageLabel::operator== | ( | const PageLabel & | d | ) |
Compares two PageLabel-s for equality.
The comparison will return true only if both labels share the same underlying SDF/Cos object. Two labels are also equivalent if they have the same style, starting number (numeric value of the first page associated with the label), and prefix strings which are the same byte-for-byte.
bool pdftron::PDF::PageLabel::IsValid | ( | ) | const |
UString pdftron::PDF::PageLabel::GetLabelTitle | ( | int | page_num | ) |
void pdftron::PDF::PageLabel::SetStyle | ( | Style | style | ) |
Sets the numbering style for the label.
style | the numbering style for the label. |
Style pdftron::PDF::PageLabel::GetStyle | ( | ) | const |
UString pdftron::PDF::PageLabel::GetPrefix | ( | ) | const |
void pdftron::PDF::PageLabel::SetPrefix | ( | const UString & | prefix | ) |
prefix | the string used to prefix the numeric portion of the page label. |
int pdftron::PDF::PageLabel::GetStart | ( | ) | const |
void pdftron::PDF::PageLabel::SetStart | ( | int | start_at | ) |
start_at | the value to use when generating the numeric portion of the first label in this range; must be greater than or equal to 1. |
int pdftron::PDF::PageLabel::GetFirstPageNum | ( | ) |
int pdftron::PDF::PageLabel::GetLastPageNum | ( | ) |
SDF::Obj pdftron::PDF::PageLabel::GetSDFObj | ( | ) | const |