8

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

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

<?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 文件..

4

3 回答 3

11

$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 文档。

于 2013-11-06T21:14:35.720 回答
0

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

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

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

请参阅DOMPDF 不适用于外部 css 文件

CSS 不适用于 DOMPDF

于 2013-11-06T06:02:31.780 回答
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');
于 2021-04-08T11:47:39.250 回答