如何使用 SWIFT 显示多文档 PDF 页面的单页

Posted

技术标签:

【中文标题】如何使用 SWIFT 显示多文档 PDF 页面的单页【英文标题】:How to display a single page of a multi-document PDF pages using SWIFT 【发布时间】:2017-02-24 06:45:37 【问题描述】:

我想为所选的 PDF 文件显示一个页面,即使 PDF 有多个页面。

这样根据选择的页码只显示一个PDF页面。

我正在写这段代码:

    let path = NSURL(fileURLWithPath: Bundle.main.path(forResource: "PDFName", ofType: "pdf")!)
    let request = NSURLRequest(url: path as URL)
    webView.loadRequest(request as URLRequest)

但这会显示文档的所有页面。 我只想按页码显示一页?

【问题讨论】:

将 UIDocumentInteractViewController 用于您的概念 我找了这个我没有找到解决方案。有没有可以帮助我做的示例或解释。我正在开发 UIPageViewController 应用程序,我想添加一个 PDF 文件,以便所有页面都显示在单独的页面中。谢谢 【参考方案1】:

一步一步的实现,你可以得到教程here1和here2

class ReaderViewController: UIViewController, UIDocumentInteractionControllerDelegate

 func loadDocUsingDocInteractionController() 

if let fileURL = NSBundle.mainBundle().pathForResource("PDFName", ofType: "pdf")  // Use if let to unwrap to fileURL variable if file exists
    let docInteractionController = UIDocumentInteractionController(URL: NSURL(fileURLWithPath: fileURL)!)
    docInteractionController.delegate = self
    docInteractionController.presentPreviewAnimated(true)



// Return the view controller from which the    UIDocumentInteractionController will present itself.
func documentInteractionControllerViewControllerForPreview(controller: UIDocumentInteractionController) -> UIViewController 
return self

swift3

class ViewController:UIViewController,UIDocumentInteractionControllerDelegate

然后像这样调用函数

@IBAction func btnOpenModal(_ sender: UIButton) 

  //  var button: UIButton? = (sender as? UIButton)
    let URLName: URL? = Bundle.main.url(forResource: "sample", withExtension: "pdf")
    if URLName != nil 
        // Initialize Document Interaction Controller
        let  documentInteractionController: UIDocumentInteractionController = UIDocumentInteractionController(url: URLName!)
        // Configure Document Interaction Controller
        documentInteractionController.delegate = self
        // Present Open In Menu
        documentInteractionController.presentOpenInMenu(from: sender .frame, in: self.view, animated: true)
    


func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController 

    return self

【讨论】:

谢谢。现在你可以显示第4页例如一个独立在ViewControllero中的PDF文件包含一个20页? 谢谢。您的回答帮助我完成了这个项目并且效果很好。 github.com/ILearnios/PDF-Reader

以上是关于如何使用 SWIFT 显示多文档 PDF 页面的单页的主要内容,如果未能解决你的问题,请参考以下文章

acrofields不使用多页文档打印 - itextsharp

将表格保存在 PDF 的单页中

如何在 iOS、PDFKit、swift 中获取 pdf 页面的准确 X 和 Y 原点值

如何使用 SWIFT 修改文档或 PDF 中的选定字段

如何使用 Imagemagick 替换单个 PDF 页面?

PDFKit - PDFThumbnailView 跳过页面而不是显示连续页面 - swift