【发布时间】:2015-12-26 09:41:27
【问题描述】:
在 Laravel 5.1 中发送 PDF 附件时,TCPPDF 似乎不能很好地与 $dest 选项(“E”或“S”)一起使用。启动 Acrobat Reader 时,文件总是因错误而损坏(错误消息:...例如,它作为电子邮件附件发送并且未正确解码)。当我尝试另一个 PDF 生成器(如 DOMPDF)时,解码似乎没问题。
$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');
});
【问题讨论】:
-
您是否尝试过在本地保存该文件而不通过电子邮件发送,在这种情况下可以吗?
-
是的,当我使用
$dest选项“D”或“I”时,PDF 可以完美呈现而不会损坏。 -
尝试一件事,先将文件保存到本地存储,然后尝试从存储中发送该文件。不是来自 TCPDF 输出。
-
是的,当我使用
$dest选项“F”保存到文件系统,然后使用 Laravel 函数attach('filepath.name')附加时,文件没有损坏。为什么“E”或“S”似乎损坏了文件?也许我需要在发送之前对字符串/附件进行一些额外的准备。如果可能,我宁愿在发送之前不保存到文件系统。 -
对于任何寻找这个的人,请在此处查看解决方案:stackoverflow.com/questions/6689567/…
标签: php email-attachments tcpdf laravel-5.1