Come allegare un PDF generato utilizzando jsPDF alla posta utilizzando asp.net c#

 C Programming >> Programmazione C >  >> Tags >> PDF
Come allegare un PDF generato utilizzando jsPDF alla posta utilizzando asp.net c#

Non puoi chiamare il codice lato client (funzione Javascript) dal codice server (c#). Puoi comunicare solo tramite il protocollo (HTTP/HTTP).

Penso che tu debba generare il PDF dal client e quindi inviare quel PDF al server in modo da poter allegare il PDF a un'e-mail.

In tal caso devi prima generare il PDF e inviarlo al server come stringa base64.

Puoi quindi convertire il base64 stringa in PDF in C# e invialo per posta come allegato.

Lato cliente:

function generatePdf() {    
    var doc = new jsPdf();
    doc.text("jsPDF to Mail", 40, 30);    
    var binary = doc.output();
    return binary ? btoa(binary) : "";

}

Pubblicazione di base64 contenuto pdf al server:

  var reqData = generatePdf();
$.ajax({
                url:url,
                data: JSON.stringify({data:reqData}),
                dataType: "json",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                success:function(){}
       });

Sul server (Controller MVC):

        public ActionResult YourMethod(string data)
        {
            //create pdf
            var pdfBinary = Convert.FromBase64String(data);
            var dir = Server.MapPath("~/DataDump");

            if (!Directory.Exists(dir))
                Directory.CreateDirectory(dir);

            var fileName = dir + "\\PDFnMail-" + DateTime.Now.ToString("yyyyMMdd-HHMMss") + ".pdf";

            // write content to the pdf
            using (var fs = new FileStream(fileName, FileMode.Create))
            using (var writer = new BinaryWriter(fs))
            {
                writer.Write(pdfBinary, 0, pdfBinary.Length);
                writer.Close();
            }
            //Mail the pdf and delete it
            // .... call mail method here 
           return null; 
}

Dai un'occhiata qui per ulteriori informazioni https://github.com/Purush0th/PDFnMail