如何在dom pdf中包含外部样式表

时间:2013-11-06 05:59:42

标签: php dompdf

我正在使用Dompdf来生成php中的报告。我无法将相同的外部样式表包括在内......

我使用的代码类似于以下内容:

<?php
require_once "dompdf/dompdf_config.inc.php";
$dompdf = new DOMPDF();

$html ="
<table>
  <tr >
    <td class='abc'>testing table</td>
    </tr>
  <tr>
   <td class='def'>Testng header</td>
  </tr>
</table>";

$dompdf->load_html($html);
$dompdf->render();
$dompdf->set_base_path('localhost/exampls/style.css');
$dompdf->stream("hello.pdf");
?>

请告诉我如何包含外部css文件..

3 个答案:

答案 0 :(得分:7)

$dompdf->set_base_path()不是您指定CSS的地方。该方法使您有机会定义附加到文档中相对路径的基本路径。

您的CSS应该是您向dompdf提供的HTML的一部分。如下所示:

<?php
require_once "dompdf/dompdf_config.inc.php";
$dompdf = new DOMPDF();

$html ="
<html>
<head>
<link type="text/css" href="localhost/exampls/style.css" rel="stylesheet" />
</head>
<body>
<table>
  <tr >
    <td class='abc'>testing table</td>
    </tr>
  <tr>
   <td class='def'>Testng header</td>
  </tr>
</table>
</body>
</html>";

$dompdf->load_html($html);
$dompdf->render();
$dompdf->set_base_path('localhost/exampls/style.css');
$dompdf->stream("hello.pdf");
?>

将dompdf视为呈现为PDF而非屏幕的Web浏览器。您可以像使用任何Web浏览器一样为其提供有效的HTML文档。

答案 1 :(得分:0)

dompdf支持一些CSS 2.1选择器语法。 dompdf还支持具有多个类属性(e.g. <p class="red bold">foo</p> matches p.red and p.bold)的元素。

请注意,dompdf中的CSS选择器区分大小写(例如.foo<div class="FOO">bar</div>不匹配)

阅读http://code.google.com/p/dompdf/wiki/CSSCompatibility或Git https://github.com/dompdf/dompdf/wiki/CSSCompatibility

参考DOMPDF doesn't work with external css file

CSS not working with DOMPDF

答案 2 :(得分:0)

这对 v1.0.2 有帮助。我有一些从 CLI 生成 PDF 的特定用例。

 $dompdf->getOptions()->setChroot($this->projectDir . DIRECTORY_SEPARATOR . 'www');  //path to document root

然后

 <link type="text/css" href="build/css/pdf_results.css" rel="stylesheet"/> //must not start with slash

从其他目录而不是文档根目录调用 CLI 脚本时,您还必须设置

$dompdf->setBasePath($this->projectDir . DIRECTORY_SEPARATOR . 'www');