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

非Laravel环境下如何向dompdf传递数据?

不用框架也能给dompdf传递数据,这么做就行

当然可行,你之前的问题是用错了传递数据的方式——loadHtml的第二个参数是用来指定HTML编码的,不是传业务数据的。

正确的做法是利用PHP的变量作用域:你在当前脚本里定义的$data,在通过require引入的模板文件里是可以直接访问的,不需要额外传递。

修改你的代码,确保$data在require模板文件前定义好(你现在的代码其实已经做到了这一步),然后在pdf-file.php模板里直接使用这个变量生成HTML内容就行。

比如你的主脚本代码可以保持现有结构(不需要改loadHtml的调用):

$options = new Options();
$options->set('defaultFont', 'Arial');
$dompdf = new Dompdf($options);

$data = ['test' => 'here is the data I want to pass'];

ob_start();
require("mypath/templates/pdf-file.php");
$html = ob_get_contents();
ob_get_clean();

$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->set_option('isHtml5ParserEnabled', true);
$dompdf->set_option('isRemoteEnabled', true);

$dompdf->render();
$dompdf->stream();

然后在pdf-file.php模板里直接输出数据:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <h1>测试数据</h1>
    <p><?php echo $data['test']; ?></p>
</body>
</html>

这样模板就能获取到你定义的$data变量,生成包含动态数据的HTML,再传给dompdf渲染成PDF就没问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:15:31