2017-03-09 59 views
0

我已成功將PDF文檔附加到電子郵件,如下所示。將PDF附加到Swift中的電子郵件中,但PDF未解碼

@IBAction func emailScript(_ sender: Any) { 

    print ("Now the value of pdfPath is \(SelectedPDF)") 
    let pdfURL = URL(string:SelectedPDF) 

    print ("The value of pdfURL is \(pdfURL)") 

    if MFMailComposeViewController.canSendMail() { 
     let mail = MFMailComposeViewController() 
     mail.setMessageBody("<p>You're so awesome!</p>", isHTML: true) 
     mail.setToRecipients(["Enter one or more emails here"]) 

     mail.mailComposeDelegate = self // Make sure to set this property to self, so that the controller can be dismissed! 

     //Set the subject 
     mail.setSubject("email with document pdf") 


      if let fileData = NSData(contentsOf: pdfURL!) { 
       print ("File data loaded.") 
       print (fileData) 
       mail.addAttachmentData(fileData as Data, mimeType: "application/pdf", fileName: "GST") 
      } 

      present(mail, animated: true, completion: nil) 

     } 

    else { 

     print ("Error") 
    } 

} 

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) { 
    controller.dismiss(animated: true) 
} 

我確定fileData不是零。數據流顯示在控制檯中。附件顯示爲PDF。但是當我從我的應用程序發送電子郵件時,PDF不可讀。在我的iPad中,我看到一個帶有標題欄的灰色屏幕。在我的Mac上,我收到一個錯誤消息,說明PDF未解碼。

PDF來自我的Dropbox,它的URL來自Parse服務器應用程序。

PDF鏈接,它在瀏覽器的工作原理,是https://www.dropbox.com/s/rt28egrkyc7uhc7/GSTPurim5777.pdf?dl=0

我在做什麼錯?

謝謝

+0

您正在將數據文件而不是PDF文件附加到消息中。 –

+0

@ElTomato這是附加文件的唯一方法。最有可能的問題是,URL實際上不會導致PDF文件。 – rmaddy

+0

這是PDF的URL。它在瀏覽器中工作。 https://www.dropbox.com/s/rt28egrkyc7uhc7/GSTPurim5777.pdf?dl=0 – user3140521

回答

0

OK,我想它了。至少對於PDF文件(如果不是全部的話),Dropbox URL包含一個dl = 0標籤以指示下載權限。爲了通過應用發送PDF,您必須將dl = 0更改爲dl = 1。然後,一切都按照原樣進行。

因此,上面的代碼不會改變。更改是在我的Parse瀏覽器中列出我的文件。

Eli

相關問題