在setasign中更改源文件时,为什么会收到“空响应”?

时间:2019-06-25 01:38:40

标签: php fpdi

我正在使用setasign V1,因为我们的服务器尚未更新至5.5.9以上,并且正尝试从3个不同的pdf导入第一页以创建新的pdf。但是,如果我使用多个文件,则会出现错误。

我也在使用Slim框架运行此程序,并且不得不向每个setasign文件中添加名称空间,以使其能够读入。

它完美地适用于单个文件,但不适用于试图从多个文件中获取页面的情况。

在下面的代码中,循环遍历每个文件以获取第一页,然后添加一些文本。这是一个函数,在该函数中我传递了一组“作业”以及要保存到的$ savedFile路径。

如果我在循环之前放置“ $ 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中。

非常感谢任何建议!

0 个答案:

没有答案