对于在Laravel 5.1中发送PDF附件,TCPDF似乎不能与$dest
选项(“E”或“S”)一起使用。启动Acrobat Reader时,文件总是损坏并出错(错误消息:...例如,它是作为电子邮件附件发送的,未被正确解码)。当我尝试像DOMPDF这样的另一个PDF生成器时,解码似乎没问题。
$pdf = new \TCPDF('P', 'in', 'LETTER', true, 'UTF-8', false);
$pdf->WriteHTML(view('emails.receipt_pdf', $receipt_data));
$attachment = $pdf->Output('Receipt - '.date("M-d-Y").'.pdf','E');
Mail::queue('emails.receipt_email', $receipt_data, function($message) use ($email, $attachment)
{
$message->from('no-reply@website.com')
->to($email)
->subject('Receipt')
->attachData($attachment, 'Receipt.pdf');
});
答案 0 :(得分:0)
在生成pdf时只需使用“ S”选项。与电子邮件相关的事情将由Laravel完成。
更新
$attachment = $pdf->Output('Receipt - '.date("M-d-Y").'.pdf','E');
到
$attachment = $pdf->Output('Receipt - '.date("M-d-Y").'.pdf','S');
此外,如果使用的是queue()而不是send(),则由于附件的缘故,它将失败。要排队,写一个作业,然后与作业队列一起发送。