我希望有人可以帮助我解决我遇到的问题。我正在做的是使用 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
您可以在配置电子邮件对象时再添加一个参数,
mailComposeVC.addAttachmentData(pdf, mimeType: "application/pdf", fileName: "MyFileName.pdf")
有人找到解决这个问题的方法吗?我正在处理同样的问题。我的应用程序从视图创建 PDF。我需要立即使用 MFMailCompose 通过电子邮件发送它。
我认为 PDF 从未保存到设备中,那么如何在 vc.addAttachmentData() 中使用它?谢谢