Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> iOS

วิธีเปิดและปิดไฟล์ PDF ใน iOS ด้วย Swift

เปิดไฟล์ PDF ใน iOS ใช้ WKWebView (UIWebView Deprecated แล้ว)

เตรียมการ

  1. เพิ่ม WKWebView ใน Storyboard
  2. เชื่อม IBOutlet: @IBOutlet weak var webView: WKWebView!
  3. Import WebKit: import WebKit

วิธีที่ 1: โหลด PDF จาก URL

func loadPDFFromURL() {
    guard let url = URL(string: "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf") else { return }
    let request = URLRequest(url: url)
    webView.load(request)
}

วิธีที่ 2: โหลด PDF จาก Local Bundle

func loadPDFFromBundle() {
    guard let pdfURL = Bundle.main.url(forResource: "document", withExtension: "pdf") else {
        print("PDF not found in bundle")
        return
    }
    let request = URLRequest(url: pdfURL)
    webView.load(request)
}

วิธีที่ 3: ใช้ PDFKit (iOS 11+) - แนะนำ

PDFKit ให้คุณสมบัติมากกว่า: Zoom, Search, Thumbnail, Annotation

import PDFKit

func showPDFWithPDFKit() {
    guard let pdfURL = Bundle.main.url(forResource: "document", withExtension: "pdf"),
          let document = PDFDocument(url: pdfURL) else { return }
    
    let pdfView = PDFView(frame: view.bounds)
    pdfView.document = document
    pdfView.autoScales = true
    pdfView.displayMode = .singlePageContinuous
    pdfView.displayDirection = .vertical
    view.addSubview(pdfView)
}

Info.plist สำหรับโหลดจากเว็บ

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

หมายเหตุ: ควรระบุ Domain เฉพาะเจาะจงแทน NSAllowsArbitraryLoads เพื่อความปลอดภัย

เปรียบเทียบ

คุณสมบัติWKWebViewPDFKit
Zoom/PanBasicAdvanced
Search Textไม่มีมี
Thumbnailไม่มีมี
Annotationไม่มีมี
Performanceดีดีกว่า (Native)