mPDF SetSourceFile - 从临时存储导入 PDF

我正在尝试使用 mPDF 导入 PDF 文件。PDF 文件是从其他服务发送的,我最初的想法是使用wrappers。(最好php://memory)。

我得到什么错误:

Warning: filesize(): stat failed for php://memory in /var/www/scrm/modules/AOS_PDF_Templates/PDF_Lib/mpdfi/pdf_parser.php on line 181

mPDF error: Cannot open php://memory !(这个打印到浏览器 BTW)

我检查了PDF:

  • 显示在浏览器中

  • 保存到文件,并从中导入

两者都有效,所以 PDF 不是问题。

我检查了 的内容php://memory,它们也是有效的。这是示例代码:

//part of the code, $content is defined earlier (.pdf file content)

$memoryFile = 'php://memory';

$handle = fopen($memoryFile,'r+');

fwrite($handle,$content);

rewind($handle);


/* dump it to string, just to be sure, part of how i was checking that pdf got saved to $memoryFile

   even with this part removed still doesn't work, so no file issue here

$str=  fread($handle,strlen($content)); //str gets filled with expected data

rewind($handle); //rewind for use by mPDF

*/


$pdf = new mPDF;

$pdf->SetImportUse();

$pagecount = $pdf->SetSourceFile($memoryFile);

我想到的解决方案:

  • 保存到常规临时文件(我不想这样做)

  • mPDF 有没有办法从字符串中导入文件?(谷歌没有为我产生任何结果)

操作系统:Ubuntu 18.04 WSL,PHP 7.2.31 版,mPDF 5.7.1 版


白衣非少年
浏览 159回答 1
1回答

斯蒂芬大帝

至少将您的 mPDF 版本升级到 8.0.0。从版本 8 开始,mPDF 使用更新的底层库 FPDI 2,它通常支持从php://memory任何流导入文件。
打开App,查看更多内容
随时随地看视频慕课网APP