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
| Class | Description |
|---|---|
FSPageLabels | Page label manager; construct from document |
Label style constants
| Constant | Description |
|---|---|
FSPageLabelsNone | No numbering (prefix only) |
FSPageLabelsDecimalNums | Decimal (1, 2, 3...) |
FSPageLabelsUpperRomanNums | Upper Roman (I, II, III...) |
FSPageLabelsLowerRomanNums | Lower Roman (i, ii, iii...) |
FSPageLabelsUpperLetters | Upper letters (A, B, C...) |
FSPageLabelsLowerLetters | Lower 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.