下面的代码片段显示了"使用DOMPDF来呈现PDF"。这里,我有两个问题:
1。在哪里添加CSS代码?
2。如何使HTML代码外的单一代码(见$ HTML 变量)?
提前感谢您的帮助。
<?php
require_once("dompdf_config.inc.php");
$html =
'<html><body>'.
'<p>Hello World!</p>'.
'</body></html>';
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("hello_world.pdf");
?>
DOMPDF就像web浏览器一样读取HTML。因此,如果你想在上面的代码示例中添加一些样式,你可以创建一个head部分:
$html =
'<html><head>' .
'<style>body { font-family: sans-serif; font-size: 150%; }</style>' .
'</head><body>'.
'<p>Hello World!</p>'.
'</body></html>';
或内嵌在文档中:
$html =
'<html><body style="font-family: sans-serif; font-size: 150%;">'.
'<p>Hello World!</p>'.
'</body></html>';
可以使用模板引擎(Smarty)或其他方式动态生成HTML文件。如果使用Smarty,那么$ Smarty ->fetch(模板文件名)将生成html代码,这可以用来创建pdf。使用CSS时要小心,因为所有的CSS都必须在页面中提到。
你可以像下面这样使用css样式的html变量来生成pdf
<?php
$html = <<<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<head>
<style>
body,html{
margin: 0px;
padding: 0px;
color:#272727;
font-size:14px;
}
body,html
{
font-family: 'dejavu sans';
line-height:0.9;!important
font-size:14px;
}
</head>
<body>
<div>
</div>
</body></html>
EOF;
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("filename.pdf");
?>
就像下面这样,你可以在pdf
中使用css样式的html变量<?php
$html = <<<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<head>
<style>
body,html{
color:#272727;
font-size:14px;
font-family: 'dejavu sans';
line-height:0.9;!important
font-size:14px;
}
</head>
<body>
<div>
This is testing content
</div>
</body></html>
EOF;
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("filename.pdf");
?>