Откройте файл PDF из файловой системы, используя код swift - PullRequest
0 голосов
/ 26 апреля 2019

Я сохранил файл pdf в файловой системе телефона, используя приведенный ниже код.

func downloadAndSavePdf (urlString:String, fileName:String) {
        DispatchQueue.main.async {
            let url = URL(string: urlString)
            let pdfData = try? Data.init(contentsOf: url!)
            let resourceDocPath = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)).last! as URL
            let pdfNameFromUrl = "\(fileName)"
            let path = resourceDocPath.appendingPathComponent(pdfNameFromUrl)
            do {
                try pdfData?.write(to: path, options: .atomic)

                print("pdf successfully saved in! \(path)")
            } catch {
                print("Pdf could not be saved")
            }
        }
    }

Когда я пытаюсь распечатать путь после того, как он успешно сохранен, это что-то вроде file:///Users/macuser/Library/Developer/CoreSimulator/Devices/088BF978-9DE7-436B-9E4B-FE1879EA806A/data/Containers/Data/Application/AF3216C3-FEFD-42C6-B8CD-DD7347FCF00C/Documents/myfile.pdf Мой вопрос1. Я сохраню этот файл и путь в базу данных и открою его позже.2. Я не могу открыть файл, используя код ниже.


     func openPdfFile(){
        //let pdfView = PDFView()
        let webView = WKWebView()
        let documentDir = FileManager.SearchPathDirectory.documentDirectory
        let userDir    = FileManager.SearchPathDomainMask.userDomainMask
        let paths               = NSSearchPathForDirectoriesInDomains(documentDir, userDir, true)
        if let dirPath          = paths.first
        {

            let pdfURL = URL(fileURLWithPath: dirPath).appendingPathComponent("myFile.pdf")
            //let image    = UIImage(contentsOfFile: imageURL.path)
            do {
                let data = try Data(contentsOf: pdfURL)
                webView.load(data, mimeType: "application/pdf", characterEncodingName:"", baseURL: pdfURL.deletingPathExtension())
                print("pdf file loading...")

            }
            catch {
                print("failed to open pdf")
            }
            return
        }
    }

, и вызов

openPdfFile()

, он не может открыть PDF в веб-представлении.Я распечатал путь и мог открыть файл в веб-браузере.Пожалуйста помоги!большое спасибо

1 Ответ

0 голосов
/ 27 апреля 2019

ОК, теперь это работает. Мне нужно добавить компонент WKWebview на мой View Controller. Затем перетащите его в файл swift
@IBOutlet слабый var webView: WKWebView! Теперь проблема веб-просмотра не распространяется на весь экран. Я не знаю, как определить размер экрана и соответственно настроить размер веб-просмотра

...