Почему я получаю «Пустой ответ» при изменении исходных файлов в setasign? - PullRequest
1 голос
/ 25 июня 2019

Я использую setasign V1, поскольку наши серверы еще не обновлены до версии 5.5.9, и я пытаюсь импортировать первую страницу из 3 разных PDF-файлов, чтобы создать новый PDF-файл.Но если я использую более одного файла, я получаю сообщение об ошибке.

Я также запускаю это с помощью фреймворка Slim, и мне пришлось добавить пространства имен в каждый из файлов setasign, чтобы они могли их прочитать.

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

В моем коде ниже, цикл проходит через каждый файл, чтобы получить первую страницу, а затем добавить текст.Это функция, в которой я передаю массив «jobs», а также путь $ saveFile для сохранения в.

Если я поставлю строку «$ pdf-> setSourceFile ($ file)» перед циклом иопределите $ file как любой из файлов в массиве $ inputFiles, он работает нормально, но, очевидно, имеет только первую страницу первого файла на каждой из 3 созданных страниц.Это также работает, если я заставлю это принести только второй файл или только третий.Но если я помещаю эту строку в цикл, я получаю сообщение об ошибке ответа.Я также пытался сбросить анализатор в конце каждого цикла, но это не имело никакого значения.

В настоящее время я не могу понять, где происходит ошибка, поскольку не выдается никаких сведений об ошибке.

$pdf = new FPDI();
$inputFolder = $_SERVER["DOCUMENT_ROOT"] . '/' . $app->config->get('saveLocations.COC') . '/';      
$inputFiles = [];
foreach($jobs as $job){
    $coc = $app->coc_approval->getCOC($app, $job);
    $cocFile = $coc->file;      
    array_push($inputFiles, $inputFolder . $cocFile);   
}

foreach($inputFiles as $file){
    $pdf->setSourceFile($file);
    $pdf->AddPage();

    $tpl = $pdf->importPage(1);
    $pdf->useTemplate($tpl, 0, 0, null, null);
    // Set font and color
    $pdf->SetFont('Helvetica');
    $pdf->SetFontSize('10');
    $pdf->SetTextColor(0, 0, 0); // RGB
    // Add Customer and PO details
    $x = 75.5;
    $pdf->SetXY($x,67);
    $pdf->Cell(0, 15, $customer);
    $pdf->SetXY($x, 73);
    $pdf->Cell(0, 15, $PO); 
    //unset($pdf->parsers[$file]);
}           
$pdf->Output($savedFile, 'F');

Я ожидаю, что первая страница каждого файла, указанного в массиве $ inputFiles, будет сохранена в окончательном PDF-файле.

Любой совет будет очень признателен, спасибо!

...