Skip to content

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

ClassDescription
PageLabelsPage label manager; create from PDFDoc

Numbering Style Constants

ConstantValueDescriptionExample
e_None0No numbering (prefix only)
e_DecimalNums1Arabic numerals1, 2, 3
e_UpperRomanNums2Uppercase RomanI, II, III
e_LowerRomanNums3Lowercase Romani, ii, iii
e_UpperLetters4Uppercase lettersA, B, C
e_LowerLetters5Lowercase lettersa, 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:

ParameterTypeDescription
page_indexintStart page index of the segment (0-based)
label_styleintNumbering style (see table above)
first_label_numberintStarting number for the segment
prefix_stringStringLabel 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.