我正在生成一个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上的所有其他主题对我没有帮助。他们都很老了,我猜是使用旧版本。
有什么建议吗?
答案 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');