Cómo adjuntar un PDF generado usando jsPDF al correo usando asp.net c#

 C Programming >> Programación C >  >> Tags >> PDF
Cómo adjuntar un PDF generado usando jsPDF al correo usando asp.net c#

No puede llamar al código del lado del cliente (función Javascript) desde el código del servidor (c#). Solo puede comunicarse a través del protocolo (HTTP/HTTPs).

Creo que necesita generar el PDF desde el cliente y luego enviar ese PDF al servidor para que pueda adjuntar el PDF a un correo electrónico.

En ese caso, primero debe generar el PDF y enviarlo al servidor como una cadena base64.

A continuación, puede convertir el base64 cadena a PDF en C# y envíelo por correo como archivo adjunto.

Lado del cliente:

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

}

Publicando el base64 contenido pdf al servidor:

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

En el servidor (controlador 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; 
}

Consulte aquí para obtener más información https://github.com/Purush0th/PDFnMail