TCPDF不使用writeHTML显示图像

时间:2012-12-04 12:27:07

标签: php tcpdf

这个问题似乎是TCPDF的常青树...... 我有一个让我疯狂的问题。

我有一个HTML代码,我用作PDF的“模板”,这里有我的公司徽标 在localhost(Windows)上一切正常,但是当我在线移动时,图像不会显示 注意:我的PDF上没有任何错误(即无法获取图像错误),图像很简单! 事实上,如果我点击它应该是图像的位置上的PDF,我可以选择它,并且Adobe启用“复制图像”选项。

显然图像存在,在这里,许可是正确的 如果我尝试在那里冲浪,或者查看生成的HTML页面,一切都很好。

这是PHP代码:

$pdf->SetMargins($params->get('pdfMarginLeft', 15), $params->get('pdfMarginTop', 27), $params->get('pdfMarginRight', 15));
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->SetFont('helvetica', '', 8);
$pdf->AddPage();

$pdf->writeHTML($html, true, false, true, false, '');

$pdf->lastPage();

然后这是我的HTML代码(我只是跳过了除图像之外的所有内容):

<img alt="logo black" src="../images/logo_black.png" height="60" width="210" />

我尝试过使用url(相对和绝对)以及路径(相对和绝对),问题仍然存在。 有什么想法吗?

9 个答案:

答案 0 :(得分:20)

这不是您的问题,但对于将来遇到类似问题的人来说,这是一个可行的解决方案。 请确保HTML属性有双引号。

$html = "<img src='...' />"; // This will not work

$html = '<img src="..." />'; // This will work

答案 1 :(得分:7)

由于本地工作正常,因此您可以尝试将图像类型从 png 更改为 jpg ,并在相应修改代码并上传 jpg后检查在服务器上。

答案 2 :(得分:1)

在我的情况下,IMG标签在我写完文件的完整路径

之前无法正常工作

不工作

<img src="/pdfrender/XXX.jpg" width="50" height="50">

工作(localhost示例)

<img src="http://site.local/pdfrender/XXX.jpg" width="50" height="50">

答案 3 :(得分:0)

我为图像src实现了一个str_replace,现在可以正常工作了。

$html = str_replace("../images", $_SERVER["DOCUMENT_ROOT"] . '/images', $html);

答案 4 :(得分:0)

我不得不“重新保存”图片:

$image = 'images/logo_example.png';    
imagepng(imagecreatefrompng($image),$image);

然后它奏效了。

答案 5 :(得分:0)

就我而言,我尝试了以上所有解决方案均无济于事。原来我缺少宽度和高度属性。添加这些内容并使用根路径最终对我有用:

<img src="/images/image.png" width="50" height="50"/>

答案 6 :(得分:0)

也可以内联添加图像数据作为base64:

<img src="@Base64encodedImageFile" />

答案 7 :(得分:0)

这并不是一个真正的答案,但是由于每个人都在尝试添加“砖”,这是我面临的一个非常奇怪的细节:

我在页面上一个接一个地放了一些小的HTML“条带”。如果我将第一个文件包含2个png和一个小的文本放在文件上,则png在PDF上可见。 如果我将第二个文件包含2个png和一个小的文本放在文件上,则png在PDF上可见。 现在,如果我放两个,则仅将第一个作为图像。第二张为空白图片。如果我更改第二个条带的图片,则图像变为可见。

详细信息:第一和第二条带使用相同的图像!

请注意,这似乎是发生的PNG图片。因此,似乎有一个错误,您不能在页面上有两次相同的PNG图像。使用JPG解决了问题。

答案 8 :(得分:0)

我遇到了同样的问题,它在本地正常工作并且在服务器空白映像上。我发现htaccess密码是问题所在。我已经将带有行Satisfy any的.htaccess文件放到带有图片的文件夹中,现在可以使用了。

相关问题