如何通过PHPMailer发送可填充的pdf用pdftk填充?

问题描述

我在网站上有一张客户填写的表格。当用户填写表格并单击时,提交数据将发送到我已经创建的pdf(发票)中,并且该数据会填充pdf中的某些位置。我使用PDFTK库做到了这一点:

public function generate($data)
    {
        $filename =  date("d-m-Y-His") . ".pdf";

        $pdf = new Pdf('./form.pdf');
        $pdf->fillForm($data)
        ->flatten()
        ->saveAs('./completed/' . $filename);

        $path = './completed/' .$filename;

        return $path;
    }

问题是,我不知道如何通过PHPMailer库发送此填充的pdf,因为pdf必须是字符串才能与PHPmailer一起使用。

$pdf = new GeneratePDF;
$response = $pdf->generate($data);

$email = new PHPMailer();
$email->SetFrom('[email protected]','Your Name'); 
$email->Subject   = 'Test';
$email->Body      = 'Test';
$email->AddAddress( 'mail exmp' );


$email->AddAttachment( $response,'NameOfFile.pdf' );

$email->Send();

以及如何在cpanel服务器中实际保存文件,因为当我这样做时,它在服务器上不起作用。

解决方法

pdf必须是字符串才能与phpmailer一起使用

这不是事实。 addAttachment()要求您将路径传递到磁盘上的本地文件,因此可以执行以下操作:

$email->addAttachment(generate(),'NameOfFile.pdf');

可以使用addStringAttachment()传递二进制字符串,但这不是您要的。