使用 dompdf 的 phpmailer 动态文件

Posted

技术标签:

【中文标题】使用 dompdf 的 phpmailer 动态文件【英文标题】:Dynamic files for phpmailer using dompdf 【发布时间】:2013-03-15 05:41:50 【问题描述】:

我正在使用 dompdf 生成 pdf 文件,其文件名不断变化,因为我在 dompdf 流输出中分配了一个变量,并且该文件名始终保持为唯一文件名。

我想在我使用 phpmailer 的邮件中附加一个文件。

问题: 如果我在 phpmailer 中将特定文件名分配为静态文件(分配了特定名称),则能够正确附加文件,但对于动态文件(使用如下变量)没有成功。这里,$attach 是我的 php 文件名变量。

试用以下代码:

$dompdf->stream($attach);//Code for dompdf

$mail->AddAttachment('C:\Downloads\$attach.pdf');  //code for phpmailer to attach file

【问题讨论】:

【参考方案1】:

我做的是这样的............

       I got all my html code in the following variable called `$html`.Then i followed below procedure.
$dompdf->load_html($html);    
$dompdf->render();
$pdf = $dompdf->output();
$file_location will have dynamic file name.
file_put_contents($file_location,$pdf);

现在使用这个 $file_location 变量将文件名附加到 php mailer。这你需要写在你生成pdf的同一个php文件中。

【讨论】:

嗨,文卡特,还是没有运气!!在下面尝试.. FOR DOMPDF:$dompdf = new DOMPDF(); $dompdf->load_html($html); $dompdf->渲染(); $pdf = $dompdf->输出(); file_put_contents($file_location,$pdf); PHPMAILER 的代码如下:$mail->AddAttachment ($file_location); 你在 $file_location 中得到了什么 嗨 Venkat,试过这个 $pdf = $dompdf->output(); file_put_contents($file_location,$pdf); $mail->AddStringAttachment($pdf, attach.pdf);现在工作正常:)。非常感谢!! 嗨 venkat,只是想知道.. 你知道这个错误吗? “无法流式传输 pdf:标头已发送”在 dompdf 中得到此信息 @sidd 通常表示 PDF 已呈现并且 dompdf 正在尝试将其发送到浏览器。该消息意味着代码中的其他内容已经发送了内容,并且正在阻止 dompdf 设置内容类型标头。

以上是关于使用 dompdf 的 phpmailer 动态文件的主要内容,如果未能解决你的问题,请参考以下文章

PHP:使用 DOMPDF 自动将动态 PDF 保存到远程服务器

DOMPDF 更改 html 元素的位置

当我们使用 phpMailer 发送带有动态内容的邮件时,如何在电子邮件正文中显示多个内联图像

DOMPDF:图像不可读或为空。 (使用 barryvdh/laravel-dompdf)

如何在Drupal 8中使用Dompdf? [关闭]

使用 Dompdf 保存 PDF 文件