Page organizer
Foxit PDF SDK for iOS provides page operations via Core SDK and PDFViewCtrl: insert, delete, move, import, and extract pages.
Operations via FSPDFDoc
Insert pages
objc
#import <FoxitRDK/FSPDFObjC.h>
FSPDFDoc *doc = [[FSPDFDoc alloc] initWithPath:@"path/to/Sample.pdf"];
[doc load:nil];
// Blank page (units: 1/72 inch)
FSPDFPage *newPage = [doc insertPage:0 width:595.0f height:842.0f];
// Predefined size
FSPDFPage *a4Page = [doc insertPageSize:1 size:FSPDFPageSizeA4];
[doc saveAs:@"path/to/output.pdf" saveFlags:FSPDFDocSaveFlagNormal];Delete pages
objc
// By index (0-based)
[doc removePage:2];
// By FSPDFPage
FSPDFPage *page = [doc getPage:0];
[doc removePageWithPage:page];Move pages
objc
FSPDFPage *page = [doc getPage:0];
[doc movePageTo:page dest_index:3];
FSRange *range = [[FSRange alloc] init];
// Configure range start/end
[doc movePagesTo:range dest_index:5];Import pages from another document
Asynchronous via FSProgressive:
objc
FSRange *pageRange = [[FSRange alloc] init];
FSProgressive *progressive = [doc startImportPagesFromFilePath:0
src_file_path:@"path/to/source.pdf"
password:nil
flags:0
layer_name:nil
page_range:pageRange];
FSProgressiveState state = [progressive resume];
while (state == FSProgressiveToBeContinued) {
state = [progressive resume];
}
if (state == FSProgressiveFinished) {
NSLog(@"页面导入成功");
}
[doc saveAs:@"path/to/output.pdf" saveFlags:FSPDFDocSaveFlagNormal];From an open FSPDFDoc:
objc
FSPDFDoc *srcDoc = [[FSPDFDoc alloc] initWithPath:@"path/to/source.pdf"];
[srcDoc load:nil];
FSProgressive *progressive = [doc startImportPages:0
src_doc:srcDoc
flags:0
layer_name:nil
page_range:pageRange];
// ... resume until finishedExtract pages
objc
FSRange *pageRange = [[FSRange alloc] init];
FSProgressive *progressive = [doc startExtractPages:@"path/to/extracted.pdf"
options:0
page_range:pageRange];
FSProgressiveState state = [progressive resume];
while (state == FSProgressiveToBeContinued) {
state = [progressive resume];
}Operations via FSPDFPage
Rotate page
objc
FSPDFPage *page = [doc getPage:0];
[page startParse:FSPDFPageParsePageNormal pause:nil is_reparse:NO];
FSRotation rotation = [page getRotation];
[page setRotation:FSRotation90];Set page size
objc
[page setSize:612.0f height:792.0f];Flatten
Merge annotations or form fields into page content:
objc
[page flatten:YES pause:nil];API reference
See the API reference for FSPDFDoc and FSPDFPage.