使用 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 文件附件的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter - mPDF 导出空白页

如何删除mPdf中的空白页

MPDF 无输出(空白页)

MPDF如何删除空白边距

PHPMailer 发送电子邮件并返回带有回显的空白页面

分页数在 mpdf 中未正确显示