当我进行php调用时:exec(" ./ wkhtmltopdf-amd64 google.com google.pdf"),我能够生成一个谷歌的pdf。
我需要创建我网站的pdf,但内容取决于会话。因此php命令:exec(" ./ wkhtmltopdf-amd64 myprofile.php profile.pdf")将生成一个与浏览器不具有相同内容的pdf文件。
经过一些研究,我找到了一个例子,其中有人将会话ID作为wkhtmltopdf命令的一部分传递。这是我的命令:exec(" ./ wkhtmltopdf-amd64 --cookie sessionid $ sessionID myprofile.php profile.pdf");
$ sessionID是php命令的结果:session_id();
永远不会生成PDF文件。谁知道我做错了什么?如何让wkthmltopdf使用与浏览器相同的会话数据?
答案 0 :(得分:0)
使用$_COOKIE
传递您的$_SESSION
数据:
在您传递$_SESSION
变量的页面中,将其转换为选择任何设置变量[COOKIE
或SESSION
]的变量,因为wkhtmltopdf只能访问您的{ {1}}秒。
而不是
COOKIE
执行:
$sessionID = $_SESSION['sessionid'];
OR:
$sessionID = $_SESSION['sessionid'] || $_COOKIE['sessionid'];
然后在generate函数中,传递它:
$sessionID = !isset($_SESSION['sessionid']) ? $_COOKIE['sessionid'] : $_SESSION['sessionid'];
请注意, $ _ SESSION 的键与 $ _ COOKIE 的键相同,并且 - cookie 参数传递给 wkhtmltopdf 强>