生成空白 PDF

发布于 2024-11-30 04:37:19 字数 1168 浏览 1 评论 0原文

我正在使用 FPDF 创建发票的 PDF。

然后我将其添加为电子邮件附件。

所有这一切似乎对我来说工作正常,在我的 Mac 上,但 Windows 系统上的用户似乎得到了一个空白的 PDF,其中没有任何信息。

的附件

$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);

PHP 调用电子邮件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');

使用预览,PDF 在我的 Mac 上看起来不错,但在 Adob​​e Acrobat 中打开时仅在 Windows 上显示徽标图像。

有谁知道问题可能是什么?

编辑:Mac 版 Adob​​e Reader 中也是空白

I am using FPDF to create a PDF of an invoice.

I am then adding this as an email attachment.

All of this seems be working fine for me, on my Mac, but users on Windows systems, seem to be getting a blank PDF, with no information in it.

PHP calling the attachment to email

$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');

The PDF looks fine on my mac, using Preview, but only dispolays the logo image on windows when opening in Adobe Acrobat.

Does anyone know what the problem could be?

EDIT: It is also blank in Adobe Reader for Mac

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

最佳男配角 2024-12-07 04:37:19

正如所评论的,这是由于所使用的命令的顺序造成的。您不能在 setFont() 之前使用 setCell()

As commented, it's due to the order of commands used. You can't use setCell() before setFont().

月牙弯弯 2024-12-07 04:37:19

不要使用图像作为单元格内容。

$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);

以获得相同的结果

Don't use image as the cell content.

$pdf->cell( 40, 40, $pdf->Image($image1, $pdf->GetX(), $pdf->GetY(), 33.78), 0, 0, 'L', false );

Instead use

$pdf->cell( 40, 40, "", 0, 0, 'L', false );
$pdf->Image($image1, $pdf->GetX(), $pdf->GetY(), 33.78);

to obtain the same result

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文