You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Dompdf与Ilovepdf合并生成PDF和用户上传PDF失败如何解决

错误原因

  • $dompdf->stream()方法的作用是直接向浏览器输出PDF流触发下载,不会返回有效的PDF文件内容或路径,无法作为合并素材使用
  • 代码中后续执行$arquivo = $this->convertHello()直接覆盖了之前的变量,且该返回值不符合Ilovepdf addFile方法要求的本地文件路径参数格式

修正方案

你需要先将Dompdf生成的PDF内容写入本地临时文件,再将临时文件路径传入Ilovepdf的添加文件方法即可。修正后的代码参考如下:

$dompdf = new Dompdf();
$dompdf->loadHtml('hello world');

// 设置纸张尺寸和方向
$dompdf->setPaper('A4', 'landscape');
// 渲染HTML为PDF
$dompdf->render();
// 获取PDF二进制内容,而非直接输出到浏览器
$pdfContent = $dompdf->output();
// 生成临时文件路径,存到本地
$tempPdfPath = sys_get_temp_dir() . '/dompdf_generated_' . uniqid() . '.pdf';
file_put_contents($tempPdfPath, $pdfContent);

$ilovepdf = new Ilovepdf('iLovePdfKey', 'iLovePdfKey');
// 创建合并任务
$myTaskMerge = $ilovepdf->newTask('merge');
// 添加用户上传的文件和生成的临时PDF文件
$file1 = $myTaskMerge->addFile('path to the file that the user upload');
$file2 = $myTaskMerge->addFile($tempPdfPath);
// 执行合并
$myTaskMerge->execute();
// 下载合并后的文件
$myTaskMerge->download();

// 可选:下载完成后删除临时文件释放空间
unlink($tempPdfPath);

内容的提问来源于stack exchange,提问作者Vanessa Lemos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:06:04