在 swift Xcode 13 中生成 pdf 并附加到电子邮件

问题描述 投票:0回答:2

我希望有人可以帮助我解决我遇到的问题。我正在做的是使用 simplePdf Cocapod 在我的应用程序中生成 pdf。 https://cocoapods.org/pods/SimplePDF。这工作正常,我可以阻止 pdf 包含我在标准 Vc 中需要的所有信息,然后从这里共享它,但是我想做的是打开邮件撰写视图控制器并自动附加文件,这样我就有了邮件功能工作正常,我可以填写我需要的所有信息,我只是不知道如何附加 pdf。任何帮助将不胜感激,谢谢

extension SecondViewController {

func pdfCreate() {
   let pdf = PDFBuilder()

   //pdf.wihMetaAuthor("Maks")
pdf.withMetaCreator("\(Location.text!) \(Date.date)")
   pdf.withMetaTitle(" MISS")
//PDF Sizing etc
pdf.withPaperSize(.A4)              // default value
pdf.withPaperOrientation(.Portrait) // default value
pdf.withTextSpacing(1.08)           // default value (Also Word's default)
pdf.withPaperMargins(.Narrow)       // default value



//location details and date top left
pdf.holdLine()
pdf.addText(text: " \(Date.date)",
               alignment: .left,
               font: .systemFont(ofSize: 15),
               colour: .systemBlue)
// address
pdf.addText(text: "Prem",
            alignment: .right,
            font: .systemFont(ofSize: 15),
            colour: .systemBlue)
//
pdf.releaseLine()

// pdf.addSpace(厘米: 0.4)

pdf.addText(text: "\(Description.text!)",
               alignment: .left,
               font: .systemFont(ofSize: 10),
               colour: .black)

pdf.addSpace(centimeters: 0.05)

pdf.addText(text: "\(Action.text!)",
            alignment: .left,
            font: .systemFont(ofSize: 10),
            colour: .black)

pdf.addSpace(centimeters: 0.05)

pdf.addText(text: "\(Prevent.text!)",
            alignment: .left,
            font: .systemFont(ofSize: 10),
            colour: .black)

pdf.addSpace(centimeters: 0.4)
//ADDing image to PDF
pdf.addImage(image: imageView.image!, maxWidth: 190, alignment: .left)

//footer
pdf.addFooter(pagingEnabled: true,
              text: "Pre. \n Development By ",
              colour: UIColor.black.withAlphaComponent(0.5))
   


// Build PDF Data
let data = pdf.build()

let pdfController = PDFPreviewVC(pdfData: data)
navigationController?.pushViewController(pdfController, animated: true)



}

}



 @IBAction func PDFCREATOR(_ sender: Any) {
    print("PDFButton Pushed")
    pdfCreate()
}




func composeMail(with image:UIImage) {
    
    if MFMailComposeViewController.canSendMail(){
        
    

    let mailComposeVC = MFMailComposeViewController()
    
    mailComposeVC.mailComposeDelegate = self
    
    mailComposeVC.setToRecipients(["Nuhnlhoyb"])

    mailComposeVC.addAttachmentData(image.jpegData(compressionQuality:   
CGFloat(1.0))!, mimeType: "image/jpeg", fileName:  "test.jpeg")

    mailComposeVC.setSubject(" \(Location.text!)")

    mailComposeVC.setMessageBody(" \n\n  \(Action.text!) \n\n \(Prevent.text!)",   

enter code here
isHTML: false)

    self.present(mailComposeVC, animated: true, completion: nil)
    } else {
        print("Email not configured in setting app!")
    }
    
}


//end of mail composer with image
ios swift xcode pdf cocoapods
2个回答
0
投票

您可以在配置电子邮件对象时再添加一个参数,

mailComposeVC.addAttachmentData(pdf, mimeType: "application/pdf", fileName: "MyFileName.pdf")

0
投票

有人找到解决这个问题的方法吗?我正在处理同样的问题。我的应用程序从视图创建 PDF。我需要立即使用 MFMailCompose 通过电子邮件发送它。

我认为 PDF 从未保存到设备中,那么如何在 vc.addAttachmentData() 中使用它?谢谢

© www.soinside.com 2019 - 2024. All rights reserved.