html вложение в формате pdf для отправки в sendgrid с помощью swift - PullRequest
0 голосов
/ 02 августа 2020

Мне нужно отправить вложения в Amazon, используя sendgrid API и SWIFT. У меня есть текст, который хранится как HTML в базе данных. Как мне преобразовать этот HTML в вложение pdf, которое я могу отправить в sendgrid.

Вот что у меня есть

      if let book = sender.book {
        let fmt = UIMarkupTextPrintFormatter(markupText: book.body!)
        
        // 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: 841.8) // 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(x: 0, y: 0, width: 0, height: 0), nil)
        
        for i in 1...render.numberOfPages
        {
            UIGraphicsBeginPDFPage();
            let bounds = UIGraphicsGetPDFContextBounds()
            render.drawPage(at: i - 1, in: bounds)
        }
        
        UIGraphicsEndPDFContext();


        Email.sharedInstance.sendBookToKindle(email: MUser.sharedInstance.userEmail, book: book, content: pdfData.base64EncodedString(options: []))

В sendBookToKindle:

func sendBookToKindle (email: String, book: Book, content: String) {
   let json:[String:Any] = [
                "subject": "convert",
                "personalizations": [[
                    "to": [["email": email ]]
                ]],
                "content": [[ "type": "text/plain", "value": "From test" ]],
                "from": ["email": "info@test.com", "name": "test"],
                "attachments": [[
                    "filename": "test Original - \(book.title).pdf",
                    "content": content,
                    "type": "application/pdf",
                    "disposition": "attachment"
                ]]
        ];
        SENDTOSENDGRID

Как преобразовать HTML в вложение pdf?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...