我正在使用FPDF
来创建发票的PDF。
然后我将其添加为电子邮件附件。
所有这一切对我来说都很好,在我的Mac上,但Windows系统上的用户似乎得到一张空白的PDF,但没有任何信息。
PHP调用电子邮件附件
$EMAIL = $confirmation_customer_email_from;
$EMAIL_NAME = $confirmation_customer_email_from_name;
$mail = new PHPMailer();
require_once('giftaid.php');
$mail->AddAttachment($name, 'giftaid.pdf');
require_once('emails/mail.customer.invoice.php');
if (!$mail->Send()){
echo 'Mailer error: ' . $mail->ErrorInfo;
}
unlink($name);
giftaid.php
require('fpdf/fpdf.php');
$image1 = "../images_site/logo.gif";
$pdf= new FPDF();
$pdf->AddPage();
$pdf->SetMargins(1,1,1,1);
$pdf->cell( 40, 40, $pdf->Image($image1, $pdf->GetX(), $pdf->GetY(), 33.78), 0, 0, 'L', false );
$pdf->SetFont('Helvetica','B',30);
$pdf->cell(150,10,'Gift Aid Declaration',0,0,'R',0);
$pdf->line(102, 20, 199, 20);
$m=microtime(true);
$name = 'temp/'.$m.'.pdf';
$pdf->Output($name, 'F');
使用Preview
,我的Mac上的PDF看起来很好,但在Adobe Acrobat中打开时,只能在窗口上显示徽标图像。
有谁知道问题可能是什么?
编辑:Adobe Reader for Mac
中也是空白答案 0 :(得分:1)
如评论所述,这是由于所使用的命令顺序。您无法在setCell()
之前使用setFont()
。
答案 1 :(得分:1)
不要将图像用作细胞内容。
$pdf->cell( 40, 40, $pdf->Image($image1, $pdf->GetX(), $pdf->GetY(), 33.78), 0, 0, 'L', false );
改为使用
$pdf->cell( 40, 40, "", 0, 0, 'L', false );
$pdf->Image($image1, $pdf->GetX(), $pdf->GetY(), 33.78);
获得相同的结果