FPDF Script Timed Out

时间:2016-10-20 20:05:36

标签: php pdf nginx fpdf cfpdf

I’m working with the FPDF library to generate PDFs.

At some point I include an image into the pdf (in the header) and do:

require_once APPPATH . '../vendor/setasign/fpdf/fpdf.php';

class cifpdf extends FPDF {

public function __construct($params = array())
{
    $this->CI = &get_instance();

    $orientation = array_key_exists('orientation', $params) ? $params['orientation'] : 'P';
    $mesure = array_key_exists('mesure', $params) ? $params['mesure'] : 'mm';
    $format = array_key_exists('format', $params) ? $params['format'] : 'A5';

    parent::__construct($orientation, $mesure, $format);
}

public function Header()
{
    $logo = base_url('assets/promoters-landingpage/img/logo-inverted.png');
    // Logo
    $this->Image($logo, 10, 6, 30);

    $this->Rect(10, 17, 129, 0.1);
    // Saut de ligne
    $this->Ln(10);
}

My issue is coming from the $this->Image($logo, 10, 6, 30); line

Looking at the Image function in the pdf vendor library, I tried to debug and found out the bug was coming from this part:

function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='')
{
    // Some Code
    if(!isset($this->images[$file]))
    {
        // Some Code

        $type = strtolower($type);
        if($type=='jpeg')
            $type = 'jpg';
        $mtd = '_parse'.$type;
        if(!method_exists($this,$mtd))
            $this->Error('Unsupported image type: '.$type);
        $info = $this->$mtd($file);
        // Some Code
    }

    // Some Code
}

So the exact line that causes the time out error is $info = $this->$mtd($file); (line 885 in the library).

I;m not sure what $mtd is? It seems defined a few lines above in $mtd = '_parse'.$type; but they do not associate it to $this. Not sure what is this.

I’m using Nginx. That same piece of code was working fine on Apache 2.

Thanks for your support.

0 个答案:

没有答案