php - 如何通过 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('you@example.com', '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()
,但这不是您在这里要求的。