Sending PDF data via email using PHPMailer and html2pdf

后端 未结 2 1185
情话喂你
情话喂你 2021-01-28 03:00

Im trying to send PDF or PNG over email and nothing seems to work. Below is my LAST attemnt, I have read every single article here on SO and nothing sees to work what is suggest

2条回答
  •  迷失自我
    2021-01-28 03:18

    After almost giving up, finally got it to work. Its a combination of few things linked here and suggested. This post on github html2pdf helped a bit also.

    I'm posting it here as none of the examples worked for me, took me two days to find what works for me and my interment. Hope it helps someone.

    window.onload = function pdfDivload (){
    let el = document.getElementById('printableArea');
    let opt = {
        margin:       1,
        filename:     'myfile.pdf',
        image:        { type: 'jpeg', quality: 0.98 },
        html2canvas:  { scale: 2 },
        jsPDF:        { unit: 'in', format: 'A4', orientation: 'portrait' }
    };
    
    html2pdf().set( opt ).from( el ).toPdf().output('datauristring').then(function( pdfAsString ) {
        let data = {
            'fileDataURI': pdfAsString,
        };
        $.post( "../prog/mail.php", data);
        console.log( data );
    } );
    };
    

    PHP:

      if (isset($_POST['fileDataURI'])) {
    
                    $pdfdoc         = $_POST['fileDataURI'];
    
                $b64file        = trim( str_replace( 'data:application/pdf;base64,', '', $pdfdoc ) );
                $b64file        = str_replace( ' ', '+', $b64file );
                $decoded_pdf    = base64_decode( $b64file );
                //file_put_contents( $attachment, $decoded_pdf );
    
                $mail = new PHPMailer;
                $mail->setFrom( 'xxx@xxx.hr', 'website' );
                $mail->addAddress( 'xxx@gxxx.com', 'OdedTa' );
                $mail->Subject  = 'First PHPMailer Message';
                $mail->Body     = 'Hi! This is my first e-mail sent through PHPMailer.';
                $mail->addStringAttachment($decoded_pdf, "nalog.pdf");
                $mail->isHTML( true );
                $mail->send();
    

提交回复
热议问题