【问题标题】:How to open Acrobat Reader to read pdf file?如何打开 Acrobat Reader 来阅读 pdf 文件?
【发布时间】:2017-12-16 17:00:28
【问题描述】:

我有很多 .pdf 格式的文件。我在集合视图中显示文件的名称。现在在 didSelectItemAtIndex 方法中,我想打开 Acrobat Reader 来打开 pdf 文件。我该如何实施? Acrobat Reader 是否还有 URL Scheme 以便我可以检测应用程序是否在手机上?

【问题讨论】:

    标签: ios swift pdf acrobat


    【解决方案1】:

    这是 Adob​​e 阅读器的应用架构:

    com.adobe.Adobe-Reader

    在 Swift 中,您可以执行以下操作:

               var docController: UIDocumentInteractionController?
        if let path = Bundle.main.path(forResource: "PDF-NAME", ofType: "pdf") {
                let targetURL = NSURL.fileURL(withPath: path)
                docController = UIDocumentInteractionController(url: targetURL)
                let url = NSURL(string:"com.adobe.Adobe-Reader:");
                if UIApplication.shared.canOpenURL(url! as URL) {
                    docController!.presentOpenInMenu(from: .zero, in: self.view, animated: true)
                    print("Adobe-Reader")
                }else{
                    print("Adobe-Reader is not installed")
                }
        }
    

    并在 plist 中添加以下应用架构。

    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>com.adobe.Adobe-Reader</string>
    </array>
    

    【讨论】:

    • 文档正在打开,一切正常,但每次文档打开时都会在 acrobat reader 中创建一个新文件。有没有办法检查这种冗余?
    • adobe reader 就是这样处理文件的。不幸的是,你无法改变它。将 pdf 阅读器任务委托给 adobe 后,您将无能为力。
    • 是的,我就是这么想的。因为如果我在 iBooks 中打开相同的内容,则不会在那里创建副本。所以是的....感谢您的帮助!干杯!
    【解决方案2】:

    首先获取您的 pdf 文件的路径。他们称之为通过acrobat reader打开pdf

    UIApplication.shared.open(URL(string: "com.adobe.adobe-reader://PDFFilePath")!)
    

    但在此之前,确认阅读器是否已经安装并没有什么坏处

    if UIApplication.shared.canOpenURL(theURL! as URL) {
    
    }
    

    【讨论】:

    • @AkshayYerneni 您的 PDF 是在主捆绑包还是文档文件夹中?您如何获得 PDF 文件的路径?
    • 我设法在 acrobat reader 中打开了文件。我有另一个问题。当我多次打开单个文档时,会在 acrobat 阅读器菜单中创建该文档的许多副本。例如- 我有一个名为 Book1.pdf 的文档。当我第二次打开该文档时,会创建另一个名为 Book1(2).pdf 的文档副本,依此类推。有没有办法检查这种冗余?
    • @AkshayYerneni 遗憾的是,没有。您可以将 pdf 文件交给他们的阅读器,但您无法更改他们处理文件的方式。所以实际上由他们来处理这个重复的文件问题,而不是你。
    • 啊,谢谢!我浪费了很多时间来弄清楚这个问题是否来自我的代码!
    • 我的手机存储路径是什么,即,file:///var/mobile/Containers/Data/Application/0A08AE0B-E6D7-4F6E-81BF-CEB4A05248C2/Documents/0sFOIb.pdf,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 2018-06-26
    • 2020-06-15
    • 2011-06-12
    • 2020-07-29
    • 2023-03-09
    相关资源
    最近更新 更多