2017-08-04 39 views
0

我正在嘗試創建一個應用程序,其中pdf已保存在本地存儲器中,並且我希望在Adobe中打開該pdf讀者。iOS Swift - 如何顯示pdf文件,它位於adobe reader的本地存儲器中

另外,我不想在任何網頁視圖中打開pdf。事實上,我希望在Adobe Reader中打開pdf。

我已經搜索了很多,但沒有成功,所有的例子都是爲了在網頁視圖中打開pdf。

下面是我的代碼:

@IBAction func savePDF(_ sender: Any) { 
     let pdfData = Data(base64Encoded: FilePDF, options: .ignoreUnknownCharacters) 
     let array = pdfData?.withUnsafeBytes 
     { 
      [UInt8](UnsafeBufferPointer(start: $0, count: (pdfData?.count)!)) 
     } 
     let data = NSData(bytes: array, length: (array?.count)!); 
     let tmpDir = NSTemporaryDirectory() 
    // data.write(toFile: tmpDir.appending("HandyHR_File_YEAR.pdf"), atomically: true) 
     print(array!) 
     print(data) 
     print(tmpDir) 
     data.write(toFile: tmpDir.appending("HandyHR_File_YEAR.pdf"), atomically: true) 

    } 

變量tmpDir存儲在本地存儲的PDF格式的路徑。

任何幫助將不勝感激。

在此先感謝。

+2

您可能需要顯示'UIDocumentInteractionController'並讓用戶選擇 – Tj3n

+0

看看[這裏](https://stackoverflow.com/questions/45229512/how-to-display-and-where-to-顯示-A-PDF文件逐個考慮-文件路徑功能於迅速/ 45229615#45229615)。 –

+0

@ Tj3n如果我不希望用戶在Web視圖中查看文件,該怎麼辦?是的,如果他想打開Adobe以外的文件pdf查看器,我可以給用戶提供選項。但我只是獲得了Web視圖的示例。 –

回答

1

一種選擇是使用UIDocumentInteractionController顯示文件:

包含控制器

實例變量:

fileprivate lazy var docInteractionController: UIDocumentInteractionController = { 
    return UIDocumentInteractionController() 
}() 

呈現預覽:

let tmpDir = NSTemporaryDirectory() 
let fileName = "HandyHR_File_YEAR.pdf" 

// Save file  

let url = URL(fileURLWithPath: tmpDir).appendingPathComponent(fileName) 
docInteractionController.url = url 
docInteractionController.delegate = self 

if docInteractionController.presentPreview(animated: true) { 
    // Successfully displayed 
} else { 
    // Couldn't display 
} 

你還能實現代表指定顯示預覽的視圖控制器:

extension YourViewController: UIDocumentInteractionControllerDelegate { 
    func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController { 
     // I tend to use 'navigationController ?? self' here but depends on implementation 
     return self 
    } 
} 
+0

謝謝......它的工作! –

0

您可以使用QuickLook框架顯示pdf,word等文件。 link這裏

相關問題