LoginSignup
13
20

More than 5 years have passed since last update.

iOSでPDFを表示(PDFKit)

Last updated at Posted at 2017-06-08

iPhone 6をiOS11にしてみたのですが、目玉機能に非対応...
かわりに、PDFKitを使ってみました。
オリジナルのPDFビューアも作れたりするみたいですが、今回はとりあえずPDFを表示してみます。
PDFを表示するためにWebViewを使う必要がなくなります。

環境

  • Xcode 9.0 beta (9M136h)
  • iOS 11.0 (15A5278f)

コード

東京メトロの路線図のPDFを表示してみます。

ViewController.swift
import UIKit
import PDFKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        let pdfView = PDFView(frame: view.frame)

        // Web上のPDFの場合
        let pdfURL = URL(string: "http://www.tokyometro.jp/station/common/pdf/network1.pdf")!
        // ローカルのPDFの場合
        let pdfURL = URL(fileURLWithPath: Bundle.main.path(forResource: "metronetwork", ofType: "pdf")!)

        let document = PDFDocument(url: pdfURL)
        pdfView.document = document
        pdfView.backgroundColor = .lightGray

        // PDFの拡大率を調整する
        pdfView.autoScales = true
        // 表示モード
        pdfView.displayMode = .singlePageContinuous

        view.addSubview(pdfView)
    }
}

autoScalesをtrueにすると、PDFのサイズを自動で調整してくれます。
デフォルトはfalseです。

PDFの表示モード(PDFDisplayMode)は4種類あります。
デフォルトはsinglePageContinuousです。

PDFDisplayMode
public enum PDFDisplayMode : Int {
    // 1ページずつ表示される
    case singlePage
    // すべてのページが連続表示される
    case singlePageContinuous
    // 見開きで表示される
    case twoUp
    // 見開きですべてのページが連続表示される
    case twoUpContinuous
}

実行結果

IMG_AEA8FF7BB3FC-1.jpeg

拡大・縮小・複数ページあればスクロールもできます。

13
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
20