domPDF CSS problem



下面的代码片段显示了"使用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");
        ?>

最新更新