IOS PDF SDK

Build on top of the iOS PDF SDK that started it all

Give your users a premium experience with an iOS PDF viewer SDK that has dozens of out-of-the-box features for document viewing, annotation, redaction, and much more.

A Great User Experience

Easy to use — easier to customize

Nutrient iOS SDK shown in action on a mobile display with tools labeled with their functionality.Vertical document editing toolbar on iOS mobile with labels describing each Nutrient function.

Benefits

Build faster

Go to market quickly with our ready-to-use code samples, templates, extensive documentation, and support resources.

Save resources

Reduce the overhead costs associated with building, customizing, and maintaining robust document technology internally.

Stay current

Know that your business is on the frontlines of industry innovation with SDKs that always reflect the latest iOS releases.

Gain peace of mind

Rely on SDKs with a reputation for security and backed by the reliable PDFium-based rendering engine.

Compatibility

Nutrient offers optimized APIs for both Swift and Objective-C. For cross-platform apps, you can also use the provided Nutrient technologies for React Native and Flutter.

See it in action!

Don’t take our word for it. Experience our iOS SDK today with PDF Viewer, our free demo app.

Artistic image titled Canvas and Culture next to a PDF viewer toolbar in Nutrient.
1import PSPDFKit
2import PSPDFKitUI
3
4// Create the `Document`.
5// This is the container for your PDF file. It can also manage multiple files.
6let fileURL = Bundle.main.url(forResource: "Document", withExtension: "pdf")!
7let document = Document(url: fileURL)
8
9// Create the PDF view controller.
10// The configuration object is optional and allows additional customization.
11let pdfController = PDFViewController(document: document) {
12	$0.thumbnailBarMode = .scrollable
13	$0.isPageLabelEnabled = false
14}
15
16// Present the PDF view controller within a `UINavigationController` to enable the toolbar.
17present(UINavigationController(rootViewController: pdfController), animated: true)
1@import PSPDFKit;
2@import PSPDFKitUI;
3
4// Create the `PSPDFDocument`.
5// This is the container for your PDF file. It can also manage multiple files.
6NSURL *documentURL = [NSBundle.mainBundle URLForResource:@"Document" withExtension:@"pdf"];
7PSPDFDocument *document = [[PSPDFDocument alloc] initWithURL:documentURL];
8
9// Create the PDF view controller.
10// The configuration object is optional and allows additional customization.
11PSPDFViewController *pdfController = [[PSPDFViewController alloc] initWithDocument:document configuration:[PSPDFConfiguration configurationWithBuilder:^(PSPDFConfigurationBuilder *builder) {
12	builder.thumbnailBarMode = PSPDFThumbnailBarModeScrollable;
13	builder.pageLabelEnabled = NO;
14}]];
15
16// Present the PDF view controller within a `UINavigationController` to enable the toolbar.
17UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:pdfController];
18[self presentViewController:navController animated:YES completion:NULL];
1// First clean up the buttons on the right.
2controller.navigationItem.setRightBarButtonItems([], for: .document, animated: false)
3
4// Then set the left buttons.
5let leftButtons = [controller.settingsButtonItem, controller.outlineButtonItem]
6controller.navigationItem.setLeftBarButtonItems(leftButtons, for: .document, animated: false)
1// First clean up the buttons on the right.
2[controller.navigationItem setRightBarButtonItems:@[] forViewMode:PSPDFViewModeDocument animated:NO];
3
4// Then set the left buttons.
5NSArray *leftButtons = @[controller.settingsButtonItem, controller.outlineButtonItem];
6[controller.navigationItem setLeftBarButtonItems:leftButtons forViewMode:PSPDFViewModeDocument animated:NO];
1// Create `Document`.
2let document = Document(url: documentURL)
3
4// Create a new free text annotation by defining its contents.
5let freeTextAnnotation = FreeTextAnnotation(contents: "PSPDFKit")
6
7// Define where you want to place the annotation in the document.
8let boundingBox = CGRect(x: 200, y: 400, width: 50, height: 300)
9freeTextAnnotation.boundingBox = boundingBox
10
11// Add the newly created annotation to the document.
12document.add(annotations: [freeTextAnnotation])
1// Create `PSPDFDocument`.
2PSPDFDocument *document = [[PSPDFDocument alloc] initWithURL:documentURL];
3
4// Create a new free text annotation by defining its contents.
5PSPDFFreeTextAnnotation *freeTextAnnotation = [[PSPDFFreeTextAnnotation alloc] initWithContents:@"PSPDFKit"];
6
7// Define where you want to place the annotation in the document.
8CGRect boundingBox = { .origin.x = 200.f, .origin.y = 400.f, .size.height = 50.f, .size.width = 300.f };
9freeTextAnnotation.boundingBox = boundingBox;
10
11// Add the newly created annotation to the document.
12[document addAnnotations:@[freeTextAnnotation] options:nil];

Use cases powered by Nutrient

We’re extremely proud of all the amazing apps that rely on Nutrient’s technology. Our main goal has always been to provide developers with the highest-quality tools so they can focus on making the best apps possible.

Dropbox Logo
Box Logo
Scanbot Logo
Gumroad Logo
Procore Logo
Scribd Logo
Gumroad Logo
Procore Logo
Scribd Logo

Pick your perfect solution

Nutrient SDKs are made to grow with your app. You can start with what you need now and add more tools later.

Viewing

Open all documents with high fidelity in a well-designed viewer.

Open all documents with high fidelity in a well-designed viewer.

Markup

Improve the review process with a suite of annotation tools.

Improve the review process with a suite of annotation tools.

Collaboration

Bring real-time collaboration to your documents.

Bring real-time collaboration to your documents.

Editing

Modify documents and easily edit PDF text directly in your app.

Modify documents and easily edit PDF text directly in your app.

Forms

Easy for users to fill forms. Easy for you to create them programmatically.

Easy for users to fill forms. Easy for you to create them programmatically.

Redaction

Automatically and permanently remove sensitive and personal information from documents.

Automatically and permanently remove sensitive and personal information from documents.

Signing

Streamline contract execution and approval workflows by enabling eSignatures and PDF digital signatures.

Streamline contract execution and approval workflows by enabling eSignatures and PDF digital signatures.

Generation

Effortlessly generate PDFs from HTML and DOCX.

Effortlessly generate PDFs from HTML and DOCX.

OCR and Data Extraction

Give new life to scanned documents by easily converting them into text that's selectable and searchable.

Give new life to scanned documents by easily converting them into text that's selectable and searchable.

Document Conversion

Easily convert any Office document, image, email, or webpage into a high-quality PDF.

Easily convert any Office document, image, email, or webpage into a high-quality PDF.

Security and Compliance

Protect sensitive information and meet regulatory requirements within your application.

Protect sensitive information and meet regulatory requirements within your application.