保存后自动将pdf文件附加到邮件中

时间:2016-12-01 08:09:45

标签: ios swift email-attachments

当我按Enter键时,我的应用会创建pdf文件。我想再向enter按钮添加一个函数。第二个功能是将创建的pdf文件附加到邮件中。因此,当我点击输入时,将创建pdf文件并将其附加到邮件中。

此代码用于保存pdf文件:

    @IBAction func EnterButtonAction(_ sender: AnyObject) {

let html = "PDF FILE TITLE"

let fmt = UIMarkupTextPrintFormatter(markupText: html)

// 2. Assign print formatter to UIPrintPageRenderer
let render = UIPrintPageRenderer()
render.addPrintFormatter(fmt, startingAtPageAt: 0)

// 3. Assign paperRect and printableRect
let page = CGRect(x: 0, y: 0, width: 595.2, height: 1000) // A4, 72 dpi
let printable = page.insetBy(dx: 0, dy: 0)

render.setValue(NSValue(cgRect: page), forKey: "paperRect")
render.setValue(NSValue(cgRect: printable), forKey: "printableRect")

// 4. Create PDF context and draw
let pdfData = NSMutableData()
UIGraphicsBeginPDFContextToData(pdfData, CGRect.zero, nil)

for i in 1...render.numberOfPages {

    UIGraphicsBeginPDFPage();
    let bounds = UIGraphicsGetPDFContextBounds()
    render.drawPage(at: i - 1, in: bounds)
}

UIGraphicsEndPDFContext();

// Save PDF file
let path = "\(NSTemporaryDirectory())MyAppFile.pdf"
pdfData.write(toFile: path, atomically: true)
print("open \(path)") // command to open the generated file

}

1 个答案:

答案 0 :(得分:0)

下面的Swift 3.0代码非常棒!

let pdfFilePath = "path to file.pdf"
let url = NSURL.fileURL(withPath: pdfFilePath)
let activityVC = UIActivityViewController(activityItems: ["My Pdf File",url], applicationActivities: nil)
self.present(activityVC, animated: true, completion: nil)