TCPDI useTemplate превышает время ожидания с некоторыми pdf - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь поместить текст в некоторые PDF-файлы с TCPDI.

Он отлично работает в большинстве PDF-файлов, но в некоторых PDF-файлах код застревает, когда достигает функции useTemplate (), и получает ошибку 500 (превышено максимальное время).

Они не длинные PDF (максимум 1,2,3 страниц), и другие PDF-файлы с большим количеством страниц работает нормально. Вот мой код:

$pdf = new TCPDI();

$pageCount = $pdf->setSourceFile($path);

for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {

    $templateId = $pdf->importPage($pageNo);

    $size = $pdf->getTemplateSize($templateId);

    if ($size['w'] > $size['h']) {
        $pdf->AddPage('L', array($size['w'], $size['h']));
    } else {
        $pdf->AddPage('P', array($size['w'], $size['h']));
    }

    $pdf->useTemplate($templateId); //Here is where it takes so long that it exceeds time

$pdf->SetFont('Helvetica');
$pdf->SetFontSize(10);
$pdf->SetTextColor(255, 0, 0);
$pdf->SetXY(2, 0);
$pdf->Write(0, 'Code nº 4');

}

$pdf->Output($file,'D'); 

Есть ли какая-нибудь опора для pdf, которая может сделать его заблокированным? Есть альтернативы?

У меня есть код, который обрабатывает несколько pdf с этим кодом в al oop и помещает их в zip, а когда в цепочке находится один pdf, который заклинивает код, zip, очевидно, не обрабатывает, поэтому если есть способ определить, какие PDF-файлы идут go, чтобы создать мне проблему, я не могу перепрыгнуть туда и сгенерировать почтовый индекс с товаром.

Я не могу контролировать PDF-файлы, они загружаются по множеству клиентов

РЕДАКТИРОВАТЬ: В журнале более миллиона строк, подобных PHP Предупреждение: недопустимое смещение строки 'DAmip' в ... \ TCPDF \ tcpdi_parser. php on line 712 до Максимального времени выполнения Фатальная ошибка

...