【问题标题】:FPDF and Image from URL来自 URL 的 FPDF 和图像
【发布时间】:2018-08-24 09:57:11
【问题描述】:

我使用 FPDF 从数据库数据创建 PDF。我需要在最后放一张图片,但它不受支持。
我从一个 php 文件中获取图像,该文件以这种方式从代码生成图像:

http://server/ean13.php?code=1234567890123

通常我将此 URL 放在 <img> 标签中,但它不适用于 FPDF。

这是代码:

$pdf = new PDF(); //PDF Class extends FPDF
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',12);
$pdf->Cell(0,10,'Test line',0,1);
$pdf->Image('ean13.php?code=1234567890123',10,6,30); //not work
$pdf->Output();

在ean13.php中,图片由imagepng()函数生成,用于显示条码。

我也尝试过file_get_contents,但还是一样。

只是添加另一个示例,如果我在页面中输入 <img src="ean13.php?code=1234567890123" /> 它可以工作

【问题讨论】:

  • 嗨@MateMate,您应该将代码发布在您尝试插入图像的位置,否则我们将无法为您提供帮助。 (见How do I ask a good question?
  • 您可以查看您的服务器是否允许先使用 file_get_contents 或 cURL 远程加载文件,然后再使用它。
  • TCPDF 也有同样的问题,基本上是另一个 FPDF 分支stackoverflow.com/questions/2687352/…
  • 从您的帖子编辑(添加的代码)中,我看到您完全错误地访问了 php 文件。如果您以这种方式在本地调用它,则不会执行它。您要么需要包含它并存储图像以供以后使用,要么使用所述 php 文件的外部路径。

标签: php html fpdf


【解决方案1】:

您使用的是相对 url,这在您的脚本运行的服务器的上下文中没有任何意义。

相对 url 可以在浏览器中使用,因为它们实际上已经使用某个 url 加载了当前页面,例如 http://example.com/some/path/index.php。因为,当你给图片一个相对的 url,比如ean13.php,它实际上知道它应该在服务器上调用http://example.com/some/path/ean13.php

但是服务器上的脚本没有那个上下文。它只会尝试将该字符串作为文件加载,而不实际执行ean13.php 中的代码。

因此,解决方案:使用完整的 url,以便 FPDF 可以请求获取它。或者生成图像并将其存储在本地文件中,然后将该文件名传递给 FPDF。

据我所知(或者可以通过the documentation 得知),不幸的是,无法从图像的流、字符串或其他内存表示中加载图像。它可以是文件,也可以是(完整)URL。

【讨论】:

  • 我尝试了不同的解决方案,例如使用 imagepng(data, filename) 或保存图像,但所有这些都不起作用
  • 很遗憾听到这个消息,但这不足以让我进一步帮助您。也许您可以更新您的问题并描述(+代码)您尝试过的新事物,以便我和其他人可以查看它们。
  • 我找到了一个用于生成 EAN13 条码的 FPDF 扩展,所以现在问题已经解决了
【解决方案2】:

我遇到了同样的问题,即使使用完整的网址也无法正常工作。我通过在同一个文件中生成图像并将输出保存在变量中来解决它。

然后我使用此链接的扩展名:http://www.fpdf.org/en/script/script45.php 来显示来自变量的图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 2019-07-22
    • 2012-11-25
    • 1970-01-01
    • 2012-08-23
    相关资源
    最近更新 更多