2017-10-28 2 views
0

swift3에서 pdf 문서를 선택하려고했지만 PDF 문서를 선택할 수 없습니다. 제 코드를 확인하십시오.swift3에서 PDF 문서 따기

class ViewController: UIViewController, UIDocumentPickerDelegate, UIDocumentMenuDelegate,UINavigationControllerDelegate { 
@IBAction func clickAction(_ sender: Any) { 
     let picker = UIDocumentPickerViewController(documentTypes: [kUTTypePDF as String], in: .import) 
     picker.delegate = self 
     present(picker, animated:true, completion:nil) 
    } 
    func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL){ 
    let fileText = try NSString(contentsOf: url, encoding: String.Encoding.utf8.rawValue) 
     print(fileText) 
} 
} 

답변

0

다음과 같은 방법을 사용할 수 있습니다

class ViewController: UIViewController,UIDocumentMenuDelegate,UIDocumentPickerDelegate,UINavigationControllerDelegate { 
     @IBAction func clickAction(_ sender: Any) { 
      self.p_documentclicked() 
     } 

     fileprivate func p_documentclicked() { 
      let importMenu = UIDocumentMenuViewController(documentTypes: ["public.text", "public.data","public.pdf", "public.doc"], in: .import) 
      importMenu.delegate = self 
      self.present(importMenu, animated: true, completion: nil) 
     } 

    internal func documentMenu(_ documentMenu:  UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) { 

      documentPicker.delegate = self 
      self.present(documentPicker, animated: true, completion: nil) 

     } 



     func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) { 

      print("we cancelled") 
     } 

     internal func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) { 
      let cico = url as URL 
      print(cico) 
      self.load(URL: cico as NSURL) 
     } 

     fileprivate func load(URL: NSURL) { 
      let sessionConfig = URLSessionConfiguration.default 
      let session = URLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil) 
      var request = URLRequest(url: URL as URL) 
      request.httpMethod = "GET" 
      let task = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in 
       if (error == nil) { 
        // Success 
        let statusCode = response?.mimeType 
        print("Success: \(String(describing: statusCode))") 
        DispatchQueue.main.async(execute: { 
         self.p_uploadDocument(data!, filename: URL.lastPathComponent!) 
        }) 

        // This is your file-variable: 
        // data 
       } 
       else { 
        // Failure 
        print("Failure: %@", error!.localizedDescription) 
       } 
      }) 
      task.resume() 
     } 
}