【问题标题】:TCPDF generates corrupt file when displaying 'large' image显示“大”图像时,T​​CPDF 生成损坏的文件
【发布时间】:2013-08-29 10:27:36
【问题描述】:

我正在使用 TCPDF(最新版本 – 6.0.023)来生成 PDF。在文档的标题中,我显示了一个徽标(JPEG 或 PNG 格式)。事实证明,当使用“大”图像 (> 30KB) 时,TCPDF 会生成损坏的 PDF 文件。

这是显示图像的代码:

<?php
public function Header() {
    // $this->headerLeftLogo = '@' . $image;
    // $this->logoHeight = 8;
    $type = (...some check...) ? 'JPEG' : 'PNG';
    $this->Image($this->headerLeftLogo, $this->getX(), $this->getY(), 0, $this->logoHeight, $type);
}
?>

在检查生成的 PDF 的源代码并比较好的和损坏的 PDF 之后,看起来损坏的 PDF 文件只是在文档中间的某个地方结束。我在好的 PDF 末尾看到的一些(可读)信息在损坏的 PDF 中不存在。

生成 PDF 时不会出现错误。 (所有 PHP 错误都打开了。)

在运行 TCPDF 的示例 9(其中显示大图)时,不会出现任何问题。

【问题讨论】:

    标签: pdf-generation tcpdf


    【解决方案1】:

    事实证明,我不得不让 TCPDF 调整图像大小。为Image()的$resize参数添加true后,脚本运行正常。

    具体来说,这是我所做的更改:

    <?php
    // Old:
    $this->Image($this->headerLeftLogo, $this->getX(), $this->getY(), 0, $this->logoHeight, $type);
    // New:
    $this->Image($this->headerLeftLogo, $this->getX(), $this->getY(), 0, $this->logoHeight, $type, '', '', true);
    ?>
    

    【讨论】:

    • 谢谢,您的回答很有帮助!我遇到了同样的问题,尽管它似乎只发生在某些系统(Centos)上,而在其他系统(Debian、Ubuntu)上我没有问题。强制调整大小但修复它:)
    猜你喜欢
    • 2010-12-14
    • 2013-09-13
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-13
    • 1970-01-01
    相关资源
    最近更新 更多