Skip to content

Page labels

Foxit PDF SDK for iOS provides page label read and write via Core SDK. Page labels let different page ranges use different numbering (Roman numerals, letters, etc.)—common in books with front matter and body text.

Core class

ClassDescription
FSPageLabelsPage label manager; construct from document

Label style constants

ConstantDescription
FSPageLabelsNoneNo numbering (prefix only)
FSPageLabelsDecimalNumsDecimal (1, 2, 3...)
FSPageLabelsUpperRomanNumsUpper Roman (I, II, III...)
FSPageLabelsLowerRomanNumsLower Roman (i, ii, iii...)
FSPageLabelsUpperLettersUpper letters (A, B, C...)
FSPageLabelsLowerLettersLower letters (a, b, c...)

Example: set and read page labels

objc
#import <FoxitRDK/FSPDFObjC.h>

FSPDFDoc *doc = [[FSPDFDoc alloc] initWithPath:@"path/to/Sample.pdf"];
[doc load:nil];

FSPageLabels *pageLabels = [[FSPageLabels alloc] initWithDocument:doc];

// First 4 pages: lower Roman, prefix "P-", start at 1
[pageLabels setPageLabel:0
             label_style:FSPageLabelsLowerRomanNums
      first_label_number:1
           prefix_string:@"P-"];

// From page 5: decimal, start at 1
[pageLabels setPageLabel:4
             label_style:FSPageLabelsDecimalNums
      first_label_number:1];

// Read labels
for (int i = 0; i < [doc getPageCount]; i++) {
    if ([pageLabels hasPageLabel:i]) {
        NSString *title = [pageLabels getPageLabelTitle:i];
        NSLog(@"第 %d 页标签: %@", i, title);
    }
}

// Remove label on one page
[pageLabels removePageLabel:0];

// Remove all
[pageLabels removeAll];

[doc saveAs:@"path/to/output.pdf" saveFlags:FSPDFDocSaveFlagNormal];

API reference

See the API reference for FSPageLabels.