Page Labels
PDF page labels let you assign custom numbering styles and prefixes so displayed page numbers differ from physical indices—for example Roman numerals (i, ii, iii) for front matter and Arabic numerals (1, 2, 3) for the body.
Foxit PDF SDK for Android provides read, set, and remove APIs via the Core SDK PageLabels class.
Core Classes
| Class | Description |
|---|---|
PageLabels | Page label manager; create from PDFDoc |
Numbering Style Constants
| Constant | Value | Description | Example |
|---|---|---|---|
e_None | 0 | No numbering (prefix only) | — |
e_DecimalNums | 1 | Arabic numerals | 1, 2, 3 |
e_UpperRomanNums | 2 | Uppercase Roman | I, II, III |
e_LowerRomanNums | 3 | Lowercase Roman | i, ii, iii |
e_UpperLetters | 4 | Uppercase letters | A, B, C |
e_LowerLetters | 5 | Lowercase letters | a, b, c |
Set Page Labels
java
PageLabels labels = new PageLabels(doc);
// From page 0: lowercase Roman, start at 1, no prefix
labels.setPageLabel(0, PageLabels.e_LowerRomanNums, 1, "");
// From page 4: Arabic numerals, start at 1
labels.setPageLabel(4, PageLabels.e_DecimalNums, 1, "");
// From page 10: uppercase letters, prefix "附录-"
labels.setPageLabel(10, PageLabels.e_UpperLetters, 1, "附录-");setPageLabel() parameters:
| Parameter | Type | Description |
|---|---|---|
page_index | int | Start page index of the segment (0-based) |
label_style | int | Numbering style (see table above) |
first_label_number | int | Starting number for the segment |
prefix_string | String | Label prefix |
Get Page Label Information
java
PageLabels labels = new PageLabels(doc);
// Full label title for a page (e.g. "附录-A")
String title = labels.getPageLabelTitle(10);
// Whether the page has a label
boolean hasLabel = labels.hasPageLabel(0);
// Numbering style
int style = labels.getPageLabelStyle(0);
// Prefix
String prefix = labels.getPageLabelPrefix(10);
// Start number
int startNum = labels.getPageLabelStart(0);Remove Page Labels
java
PageLabels labels = new PageLabels(doc);
labels.removePageLabel(0);
labels.removeAll();Auto-Update Page Labels
When pages are added or removed, control automatic index updates:
java
doc.enableUpdatePageLabel(true);Complete Example
java
PDFDoc doc = new PDFDoc(filePath);
doc.load(null);
PageLabels labels = new PageLabels(doc);
// Front matter: first 3 pages, lowercase Roman
labels.setPageLabel(0, PageLabels.e_LowerRomanNums, 1, "");
// Body: from page 4, Arabic numerals
labels.setPageLabel(3, PageLabels.e_DecimalNums, 1, "");
// Appendix: from page 20, uppercase letters with prefix
labels.setPageLabel(19, PageLabels.e_UpperLetters, 1, "附录-");
doc.saveAs(outputPath, PDFDoc.e_SaveFlagNormal);
for (int i = 0; i < doc.getPageCount(); i++) {
String title = labels.getPageLabelTitle(i);
Log.d("PageLabel", "Page " + i + " -> " + title);
}API Reference
See the API Reference for full PageLabels documentation.