I have successfully generated a PDF using mpdf, which I have verified by downloading the PDF. However, when I send the PDF as an e-mail attachment I receive a blank PDF with an "Out of Memory" error by Adobe Reader. Below is my code:
<?php
include("MPDF57/mpdf.php");
ob_start();
include "Receipt_Template_2.php";
$template = ob_get_contents();
ob_end_clean();
$mpdf=new mPDF('','A4','','',32,25,27,25,16,13,'L');
mpdf->WriteHTML($template);
$content = $mpdf->Output($template, 'S');
$content = chunk_split(base64_encode($content));
$mailto = 'sample@sample.com';
$from_name = 'KIREA';
$from_mail = 'NoReply@kirea.ca';
$uid = md5(uniqid(time()));
$subject = 'KIREA Donation Receipt';
$message = "Thank you for your donation!\n\nAttached is the receipt concerning the donation. If you have any questions, please e-mail us at receipts@kirea.ca";;
$filename = $pdfName;
$header = "From: ".$from_name." <".$from_mail.">\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\n";
$header .= "This is a multi-part message in MIME format.\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\n";
$header .= "Content-Transfer-Encoding: 7bit\n";
$header .= $message."\n\r\n";
$header .= "--".$uid."\n";
$header .= "Content-Type: application/pdf; name=\"".$filename."\"\n";
$header .= "Content-Transfer-Encoding: base64\n";
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\n\n";
$header .= $content."\n\n";
$header .= "--".$uid."--";
$is_sent = @mail($mailto, $subject, "", $header);
$mpdf->Output();
exit;
?>
Are there any ideas as to why the PDF is ending up blank after being sent as an e-mail attachment? Thank you.
If you can use swiftmailer, you can attach a MPDF generated PDF to the email, quite easily as follows:
Here is the Reference.
You are wrong at here you are not taking the object on which your data is written
please replace below code with above to get correct result.
use
$content
in your email