Saltar al contenido

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

Luego de mucho trabajar hemos hallado el resultado de este contratiempo que tantos lectores de este sitio web tienen. Si deseas aportar algún detalle puedes dejar tu conocimiento.

Solución:

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 base64 string.

A continuación, puede convertir el base64 string 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

Nos encantaría que puedieras difundir este ensayo si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *