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



我希望有人能帮我解决我遇到的问题。我正在做的是使用simplePdf-Cocapod在我的应用程序中生成一个pdf。https://cocoapods.org/pods/SimplePDF。这很好,我可以在标准Vc中阻止pdf中包含我需要的所有信息,然后从这里共享,但我想做的是打开一个邮件撰写视图控制器并自动附加文件,这样我的邮件功能就可以很好地工作,我可以填写我需要的全部信息,我只是无法锻炼如何附加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(" nn  (Action.text!) nn (Prevent.text!)",   

enter code hereisHTML:false(

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

}

//end of mail composer with image

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

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

最新更新