使用 phpmailer 和 mpdf 获取空白 pdf 文件附件
Posted
技术标签:
【中文标题】使用 phpmailer 和 mpdf 获取空白 pdf 文件附件【英文标题】:getting blank pdf file attachment using phpmailer and mpdf 【发布时间】:2014-11-14 11:32:43 【问题描述】:当单击按钮并将它们保存在文件夹中时,我正在使用 mPDF 生成 PDF。我正在寻找一种使用 phpmailer 将 PDF 添加到附件的方法。这是我尝试过的:
$dir = $_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']);
$pdfexist = $dir."/classes/pdf/feestructure_".$student['rollno'].".pdf";
$mail = new PHPMailer;
$mail->isSMTP();
$mail->From="xyz@abc.com";
$mail->FromName="xyz";
$mail->addAddress("xyz@abc.com");
//echo $email."<br/>";
$mail->addAddress("xyz@abc.com");
$mail->addAddress("xyz@abc.com");
$mail->Subject = 'XYZ';
$pdfstring = $pdfexist;
$mail->AddStringAttachment($pdfstring, "feestructure_".$roll.".pdf", $encoding = 'base64', $type = 'application/pdf');
我生成的 pdf 大小为 13k,但在邮件附件中显示为 1k。请帮帮我。
这是 mpdf 的输出:
$mpdf->Writehtml(file_get_contents("$dir/feestructure_pdf.php?rollno=$rollno"));
$pdfname="feestructure_".$rollno.".pdf";
$mpdf->Output("classes/pdf/".$pdfname,"F");
【问题讨论】:
【参考方案1】:您的 $pdfexists
/ $pdfstring
变量包含文件路径,而不是二进制 PDF 数据,因此您应该使用 AddAttachment()
,而不是 AddstringAttachment()
。 AddAttachment 附加文件(如您的 PDF),AddStringAttachment 附加字符串,如您可能从网络调用或数据库中返回的内容。
$mail->AddAttachment($pdfstring, "feestructure_".$roll.".pdf", $encoding = 'base64', $type = 'application/pdf');
【讨论】:
非常感谢您的回答,虽然我通过 curl() 完成了它,但它很有帮助,因为我的 pdf 生成页面和这个页面是分开的。以上是关于使用 phpmailer 和 mpdf 获取空白 pdf 文件附件的主要内容,如果未能解决你的问题,请参考以下文章