在FPDI中找不到给定的流



我正在使用FPDI库将多个pdf文件合并为一个

遵循此文档https://manuals.setasign.com/fpdi-manual/v2/the-fpdi-class/

我试过了,

use setasignFpdiFpdi;
use setasignFpdiPdfParserStreamReader;
function merge()
{
$file = fopen('https://path/to/s3/file','rb');
$pdf = new Fpdi();
$pdf->AddPage();
$pdf->setSourceFile(new  StreamReader($file));
$tplIdx = $pdf->importPage(1);
$pdf->useTemplate($tplIdx, 10, 10, 100);
$pdf->SetFont('Helvetica');
$pdf->SetTextColor(255, 0, 0);
$pdf->SetXY(30, 30);
$pdf->Write(0, 'This is just a simple text');
$pdf->Output();
}

当试图在streamReader中传递url时,我得到了给定的流不可查找

如何将s3文件传递到流读取器并进行合并。

HTTP流包装器不支持查找。

您必须将bucket下载到一个临时文件或变量中。一个简单的file_get_contents()就可以做到:

$fileContent = file_get_contents('https://path/to/s3/file');
// ...
$pdf->setSourceFile(StreamReader::createByString($fileContent));

对于那些试图从同一服务器加载文件的人(不适用于本例,但可以帮助其他人解决此错误(:changehttp://example.com/path/file.pdf到类似这样的本地路径/home/user/public_html/path/file.pdf

相关内容

  • 没有找到相关文章

最新更新