mPDF SetSourceFile - 从临时存储导入 PDF
mPDF SetSourceFile - import PDF from temporary storage
我正在尝试使用 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 从字符串中导入文件? (Google 对我没有结果)
OS: Ubuntu 18.04 WSL, PHP 版本 7.2.31, mPDF 版本 5.7.1
将您的 mPDF 版本至少升级到 8.0.0。
从版本 8 开始,mPDF 使用更新的底层库 FPDI 2,通常支持从 php://memory
或任何流导入文件。
我正在尝试使用 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 从字符串中导入文件? (Google 对我没有结果)
OS: Ubuntu 18.04 WSL, PHP 版本 7.2.31, mPDF 版本 5.7.1
将您的 mPDF 版本至少升级到 8.0.0。
从版本 8 开始,mPDF 使用更新的底层库 FPDI 2,通常支持从 php://memory
或任何流导入文件。