使用phpmailer发送TCPDF生成的pdf

时间:2017-09-17 18:22:20

标签: php pdf phpmailer tcpdf

我正在生成一个pdf文件而不将其保存到磁盘:

$attachment = $this->pdf->Output('e-tickets.pdf', 'S');

根据TCPDF,这应该返回一个包含pdf文件的字符串。

但是使用PHPMailer发送它会导致文件损坏:

$mail->AddStringAttachment($attachment, 'e-tickets.pdf', 'base64', 'application/pdf');

我尝试了以下替代方案(以及所有可能的组合):

$attachment = $this->pdf->Output('e-tickets.pdf', 'E');

$mail->AddStringAttachment($attachment, 'e-tickets.pdf');

没有任何内容导致pdf文件正常工作。 该文件不为空(它有一个文件大小),当我在D中使用TCPDF选项时,文件下载正常。

Stackoverflow上的所有其他主题对我没有帮助。他们都很老了,我猜是使用旧版本。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我自己解决了。这真是一个愚蠢的错误

我在课堂上使用let operation = BlockOperation(block: self.doSomething) operation.queuePriority = .low OperationQueue.main.addOperation(operation)

我将其更改为$this->pdf->Output('e-tickets.pdf', 'E');并解决了问题。

新鲜的一天,新鲜的东西可以帮助你。

感谢您的帮助

答案 1 :(得分:-1)

你试过了吗?

$attachment = $this->pdf->Output('e-tickets.pdf', 'E');
$attachment = chunk_split($attachment);
$mail->AddStringAttachment($attachment, 'e-tickets.pdf');