I have implemented gapi/ 0Auth2 elsewhere in my code and everything works, except the attached PDF is broken. The PDF can not be previewed and is empty when downloaded.
´´´
function stuffer() { var sender = "sender@gmail.com"; var receiver = "reciver@hotmail.com"; let dem = pdfCon("ny brab verder"); console.log(dem); var mail = [ 'Content-Type: multipart/mixed; boundary="foo_bar_baz"rn', "MIME-Version: 1.0rn", "From: " + sender + "rn", "To: " + receiver + "rn", "Subject: Subject Textrnrn", "--foo_bar_bazrn", 'Content-Type: text/plain; charset="UTF-8"rn', "MIME-Version: 1.0rn", "Content-Transfer-Encoding: 7bitrnrn", "The actual message text goes herernrn", "--foo_bar_bazrn", "Content-Type: application/pdfrn", "MIME-Version: 1.0rn", "Content-Transfer-Encoding: base64rn", 'Content-Disposition: attachment; filename="generated.pdf"rnrn', dem, "rnrn", "--foo_bar_baz--", ].join(""); return sendMessage(mail); } function sendMessage(message) { var base64EncodedEmail = btoa(message) .replace(/+/g, "-") .replace(///g, "_"); gapi.client.gmail.users.messages .send({ userId: "me", resource: { raw: base64EncodedEmail, }, }) .then(function (response) { console.log(response); }); } function pdfCon(content) { var pdf = new jsPDF(); pdf.text(content, 10, 10); pdf.setProperties({ title: "new Report", }); return pdf.output("datauristring"); }
´´´
I have tried premade PDF, rather than jsPDF.
I have followed the documentation on google and looked at different post, but there seem to be no documentation for this specifik problem.
Advertisement
Answer
From your script, I thought that the returned value from pdfCon("ny brab verder")
is the data URL. So, how about the following modification?
From:
let dem = pdfCon("ny brab verder");
To:
let dem = pdfCon("ny brab verder").split(",")[1];
- In this modification, the header is removed from the data URL. By this, only the base64 data is retrieved.