wkhtmltopdf 在 html 文件中传递变量
wkhtmltopdf passing variable in html file
我将 wkhtmltopdf 与 php 一起使用,效果很好。
现在,我想将 php 文件中的一些变量添加到 html 文件中,但我找不到解决方案。
PHP 文件:
<?php
require '/path/vendor/autoload.php';
use mikehaertl\wkhtmlto\Pdf;
$pdf = new Pdf(array(
'no-outline',
'margin-top' => 0,
'margin-right' => 0,
'margin-bottom' => 0,
'margin-left' => 0,
// Default page options
'disable-smart-shrinking',
));
if($_GET['file'] == 'public'){
$pdf = new Pdf('template_public.html');
}else{
$pdf = new Pdf('template_pro.html');
}
$pdf->send();
?>
HTML 文件:
<html>
<head>
<title>Generated PDF file</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<div>
{title}
</div>
</body>
</html>
如何替换 HTML 文件中的 {title}?
给定一个参数数组,这应该用它们的值替换 html 文件中的所有 {variables}。
$params = ["title"=>"title_val", "content" => "something", "key" => "value"];
$pdf = new Pdf();
$html = file_get_contents($templateFile);
foreach($params as $key=>$value) {
$html = str_replace("{".$key."}", $value, $html);
}
//Renders the pdf directly from the html string, instead of loading the file directly
$pdf->addPage($html);
$pdf->send();
设置页面选项请参考这里。
https://github.com/mikehaertl/phpwkhtmltopdf#setting-options
您可以设置标题、页码等...
使用 addPage 选项将页面选项应用于特定页面。
我的任务是将真实的客户端ip值传递给pdf。当我将 IP 读取为 $ENV{REMOTE_ADDR} 时,我得到的是服务器 IP,而不是客户端 IP。
我用这段代码来解决问题:
wkhtmltopdf --cookie remote_addr $IP
它将 IP 变量传递给 pdf。然后,我的 html 页面可以读取 cookie 值并将它们显示在文本中。
我将 wkhtmltopdf 与 php 一起使用,效果很好。 现在,我想将 php 文件中的一些变量添加到 html 文件中,但我找不到解决方案。
PHP 文件:
<?php
require '/path/vendor/autoload.php';
use mikehaertl\wkhtmlto\Pdf;
$pdf = new Pdf(array(
'no-outline',
'margin-top' => 0,
'margin-right' => 0,
'margin-bottom' => 0,
'margin-left' => 0,
// Default page options
'disable-smart-shrinking',
));
if($_GET['file'] == 'public'){
$pdf = new Pdf('template_public.html');
}else{
$pdf = new Pdf('template_pro.html');
}
$pdf->send();
?>
HTML 文件:
<html>
<head>
<title>Generated PDF file</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<div>
{title}
</div>
</body>
</html>
如何替换 HTML 文件中的 {title}?
给定一个参数数组,这应该用它们的值替换 html 文件中的所有 {variables}。
$params = ["title"=>"title_val", "content" => "something", "key" => "value"];
$pdf = new Pdf();
$html = file_get_contents($templateFile);
foreach($params as $key=>$value) {
$html = str_replace("{".$key."}", $value, $html);
}
//Renders the pdf directly from the html string, instead of loading the file directly
$pdf->addPage($html);
$pdf->send();
设置页面选项请参考这里。
https://github.com/mikehaertl/phpwkhtmltopdf#setting-options
您可以设置标题、页码等...
使用 addPage 选项将页面选项应用于特定页面。
我的任务是将真实的客户端ip值传递给pdf。当我将 IP 读取为 $ENV{REMOTE_ADDR} 时,我得到的是服务器 IP,而不是客户端 IP。
我用这段代码来解决问题:
wkhtmltopdf --cookie remote_addr $IP
它将 IP 变量传递给 pdf。然后,我的 html 页面可以读取 cookie 值并将它们显示在文本中。