2016-12-01 56 views
0

当我按回车时,我的应用程序创建pdf文件。我想添加一个更多的功能到输入按钮。第二个功能是将创建的pdf文件附加到邮件中。所以当我打入时,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

http://stackoverflow.com/questions/30423583/attach-a-pdf-file-to-email-swift – Darshana

回答

0

低于雨燕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)