生成空白PDF

时间:2011-08-19 10:39:04

标签: php pdf fpdf

我正在使用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

中也是空白

2 个答案:

答案 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);

获得相同的结果