TCPDF - Header 图片只显示在第一页

TCPDF - Header image only displays on first page

我正在使用 TCPDF 生成一个 2 页的 pdf 文档。

我在文档中添加了 header 和页脚。 header 和页脚的文本部分在每个页面上都正确显示,但是当我在 header 中包含图像徽标时,它只显示在第一页上。

   public function Header()
{
    $this->Image('/home/xxxxxx/public_html/xxxxxxxx/uploads/logo/logo.png',10,6,0,13);

    $this->SetFont('helvetica','B',20);
    $this->Cell(80);
    $this->Cell(0,0, $project->name . ' - Project Plan',$frame,0,'R');
    $this->Ln(8);
    $this->SetFont('helvetica','',10);
    $this->Cell(0,0, $organisation->name,$frame,0,'R');
    $this->Ln(10);
}

有人知道我做错了什么吗?

谢谢

我认为与 header/footer 无关,但我认为 TCPDF 存在错误,该错误破坏了图像功能,多次加载相同的图像文件,如此处所报告 TCPDF - image displayed only once

实际版本中也存在错误 tecnickcom/tcpdf:6.2.26

我通过在外部加载图像并将其作为字符串传递给函数来解决这个问题。

public function Header()
{
    $this->Image('@'.file_get_contents('/home/xxxxxx/public_html/xxxxxxxx/uploads/logo/logo.png'),10,6,0,13);

    $this->SetFont('helvetica','B',20);
    $this->Cell(80);
    $this->Cell(0,0, $project->name . ' - Project Plan',$frame,0,'R');
    $this->Ln(8);
    $this->SetFont('helvetica','',10);
    $this->Cell(0,0, $organisation->name,$frame,0,'R');
    $this->Ln(10);
}

如前所述,这是一个 tcpdf 错误。就我而言,我在 header 中有两个徽标,一个是 png,另一个是 jpg。问题只发生在 .png 上。将图像类型从 png 更改为 jpg 解决了问题。

我通过使用 base64 编码的字符串解决了这个问题,如下所示:

$image = base64_encode(file_get_contents('path_to_image'));

那么你可以这样使用它:

<img src="@<?= $image ?>" />