Using PDFNet From a Swift Project on iOS

PDFNet is easy to use with a Swift project. This post will show how to set up a new Swift project and display a PDF.

This post will show you the basics of starting a new Swift project that uses PDFNet. For a comprehensive introduction to PDFNet on iOS, please see Getting Started on iOS. A completed Swift sample project is included with the most recent version of PDFNet for iOS.

1. Open Xcode 8+, and select File->New Project->Single View Application. Create a new Universal Swift app.

2. Add the following PDFNet files to your project:

  • Lib/Framework-dynamic/PDFNet.framework
  • Lib/Tools/Tools.framework
  • TestFiles/mech.pdf

3. Link in the following Apple frameworks

  • MediaPlayer.framework
  • CoreText.framework
  • CoreMedia.framework


4.  In the file ViewController.swift, change the viewDidLoad() function to the following:

import UIKit
import PDFNet
import Tools

class ViewController: UIViewController {

   override func viewDidLoad() {
  // Do any additional setup after loading the view, typically from a nib.
  // initialize PDFNet
  // create a PTPDFViewCtrl and add it to the view
  let ctrl = PTPDFViewCtrl()
  ctrl.frame = CGRect(origin:, size: self.view.bounds.size)
  ctrl.setBackgroundColor(0, g: 0, b: 0, a: 0)
  self.view.backgroundColor = UIColor.init(colorLiteralRed:0.7, green:0.7, blue:0.7, alpha: 1.0)
  // open the PDF document included in the bundle in the PTPDFViewCtrl
  let docPath = Bundle.main.path(forResource: "mech", ofType: "pdf")
  let doc = PTPDFDoc(filepath: docPath!)
  ctrl.autoresizingMask = [.flexibleWidth, .flexibleHeight];

  // add the toolmanager (used to implement text selection, annotation editing, etc.
  let toolManager = ToolManager(pdfViewCtrl: ctrl)
  ctrl.toolDelegate = toolManager;
  _ = toolManager?.changeTool(PanTool.self)

 override func didReceiveMemoryWarning() {
 // Dispose of any resources that can be recreated.


If you run the project, the program should now display the PDF mech.pdf. As stated above, a completed version of this sample is available in the latest version of PDFNet, so please check it out!

2 thoughts on “Using PDFNet From a Swift Project on iOS

  1. Ryan

    Thank you for letting us know you are interested in these changes. We always use customer feedback to help us steer our development roadmap.

    While we don’t currently support these two features, we are looking to add them in a future release, though nothing is scheduled right now.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s