выдает при предварительном просмотре PDF с RemoteURL - PullRequest
0 голосов
/ 21 октября 2019

Я выполняю предварительный просмотр PDF в моем приложении Swift, поэтому я решил использовать стороннюю библиотеку для предварительного просмотра PDF, которую я использую ниже библиотеки

Пожалуйста, проверьте библиотеку здесь

поэтому сначала я загружаю URL-адрес и сохраняю его в каталог документов, а затем показываю его, но pdf не просматривается ниже, это мой код

func downloadFileFromURL(url: String)  {

    if let audioUrl = URL(string: url) {

        let documentsDirectoryURL =  FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

        let destinationUrl = documentsDirectoryURL.appendingPathComponent(audioUrl.lastPathComponent)
        print(destinationUrl)


        if FileManager.default.fileExists(atPath: destinationUrl.path) {
            print("The file already exists at path")
            print(destinationUrl)
            let document = try! PDFDocument(filePath: destinationUrl.lastPathComponent, password: "")

            self.collectionView.document = document
        } else {
            URLSession.shared.downloadTask(with: audioUrl, completionHandler: { (location, response, error) -> Void in
                guard let location = location, error == nil else { return }
                do {
                    try FileManager.default.moveItem(at: location, to: destinationUrl)
                    print(destinationUrl)
                    let document = try! PDFDocument(filePath: destinationUrl.lastPathComponent, password: "")

                    self.collectionView.document = document
                    print("File moved to documents folder")
                } catch let error as NSError {
                    print(error.localizedDescription)
                }
            }).resume()
        }
    }
}

и внутри viewDidLoad() я реализую приведенный ниже код

downloadFileFromURL(url: "http://housedocs.house.gov/edlabor/AAHCA-BillText-071409.pdf")

, но pdf все еще не просматривается, некоторые могут сказать мне, что это правильный способ предварительного просмотра pdf с помощью UXMPdf

или предложить мне лучший pdfviewer для Swift, из которого я могу загрузить pdf из URL

1 Ответ

0 голосов
/ 21 октября 2019

Вы должны указать полный path, а не последний компонент пути.

И удалить ! внутри блока do - catch.

let document = try PDFDocument(filePath: destinationUrl.path, password: "")

Поскольку параметр password не используется, я рекомендую использовать встроенный инициализатор

let document = try PDFDocument(url: destinationUrl)

...