我正在使用fpdf生成pdf文件,该文件包含标题以及使用post方法收集的表单中的相应用户输入。我想将此pdf附加到电子邮件中,以便将其发送给用户。我将使用phpMailer来做到这一点。我想知道是否可以给pdf一个名称,以便它可以附加到电子邮件,但pdf不会保存在服务器或用户本地计算机上。
下面的代码循环遍历headers数组和表单数据。然后它将它写入pdf。我已经将一个静态pdf文件吸引到附件参数,这只是为了测试pdf文件是否通过电子邮件发送。
代码
<?php
require('fpdf.php');
require_once('mail/class.phpmailer.php');
?>
<?php
if(isset($_POST['submit'])) {
$pdf = new FPDF();
$pdf->AddPage();
$headers = ['first name', 'last name'];
$i = 0;
foreach($_POST as $k => $v) {
if($k == 'submit') continue;
$pdf->SetFont('Arial','B',16);
$pdf->write(40,$headers[$i++]);
$pdf->ln(10);
$pdf->write(40,"$v");
$pdf->ln(10);
$content = $pdf->Output('doc.pdf','F');
}
//$bodytext ='jdjdjdjdjd';
//$email = new PHPMailer();
//$email->From = 'example@hotmail.co.uk';
//$email->FromName = 'example';
//$email->Subject = 'PDF AddAttachment';
//$email->Body = $bodytext;
//$email->AddAddress( 'destination@hotmail.co.uk' );
//$file_to_attach = 'file/my.pdf';
//$email->AddAttachment( $file_to_attach , 'my.pdf' );
//return $email->Send();
//$pdf->Output();
}
?>
答案 0 :(得分:3)
FPDF有一个输出函数,可以生成编码的String。 见http://www.fpdf.org/en/doc/output.htm
PHPMailer可以添加Strings的附件。
所以它的
$content = $pdf->Output('S');
$email->addStringAttachment($content, 'my.pdf');
那很简单。
答案 1 :(得分:-1)