KAR
KAR

Reputation: 3361

How to use pdfkit ios 11 to open pdf file?

I am trying to open PDF file using new iOS 11 framework pdfkit.

But I am unable to do that.

So help me in opening the file using pdfkit framework.

Thank you in Advance.

Upvotes: 7

Views: 8636

Answers (3)

Ravindhiran
Ravindhiran

Reputation: 5384

Here is Objective-C based example

#import <PDFKit/PDFKit.h>



PDFView *View = [[PDFView alloc] initWithFrame: self.view.bounds];
View.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleBottomMargin;
View.autoScales = NO ;
View.displayDirection = kPDFDisplayDirectionHorizontal;
View.displayMode = kPDFDisplaySinglePageContinuous;
View.displaysRTL = YES ;
[View setDisplaysPageBreaks:YES];
[View setDisplayBox:kPDFDisplayBoxTrimBox];
[View zoomIn:self];
[self.view addSubview:View];

NSURL * URL = [[NSBundle mainBundle] URLForResource: @"test" withExtension: @ "pdf" ];
PDFDocument * document = [[PDFDocument alloc] initWithURL: URL];
View.document = document;

Upvotes: 7

bharatmeda
bharatmeda

Reputation: 241

Here is Objective-C based example

  1. Ensure PDFKit framework is added to the project enter image description here

  2. Import the framework header #import <PDFKit/PDFKit.h>

  3. Create PDFDocument instance. In my case, it was using NSURL

    // fileURL is NSURL file path instance created using base64 pdf content PDFDocument *pdfDocument = [[PDFDocument alloc] initWithURL:fileURL];

  4. Create PDFView instance and assign the pdfDocument document to it

    PDFView *pdfView = [[PDFView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)]; pdfView.document = pdfDocument; pdfView.displayMode = kPDFDisplaySinglePageContinuous; pdfView.autoScales = true; pdfView.layer.borderWidth = 2; pdfView.layer.borderColor = [UIColor blueColor].CGColor;

As done by many others, we were using webview for showing and interacting with PDF content. Reading through the framework and trying some samples, PDFKit comes out as a thoughtful design where multitude of features are available out of the box and eases development.

For example, we had AirPrint functionality in the application which had this check for determining printability

if ([UIPrintInteractionController canPrintData: fileData]) {

After replacing webview implementation with PDFKit, I just had to use dataRepresentation method to get fileData and the rest just worked as is

NSData *fileData = [pdfDocument dataRepresentation];

Please check this WWDC page for additional details

Upvotes: 10

Parth Adroja
Parth Adroja

Reputation: 13514

For new PDFKit,

you need to import PDFKit

Then create a view of PDFView and give a PDFDocument to view's document. Check the below code for reference.

let pdfView = PDFView(frame: self.view.bounds)
let url = Bundle.main.url(forResource: "pdfFile", withExtension: "pdf")
pdfView.document = PDFDocument(url: url!)
self.view.addSubview(pdfView)

Upvotes: 8

Related Questions