9

I am using Dompdf for the report generation in the php. I am not able to include the external style sheet for the same...

The code I am using is similar to the following:

<?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");
?>

Please let me know how to include the external css file..

BrianS
  • 13,284
  • 15
  • 62
  • 125
Kiran
  • 551
  • 2
  • 7
  • 13
  • What's the exact error message? Also share the relevant code you're using, if any. – Dan Hlavenka Nov 06 '13 at 06:01
  • Hi @Dan..style sheet are not loading in the generated pdf. testing table Testng header "; $dompdf->load_html($html); $dompdf->render(); $dompdf->set_base_path('localhost/exampls/style.css'); $dompdf->stream("hello.pdf"); ?> – Kiran Nov 06 '13 at 07:11
  • For the comment above it would be better to edit your post to clarify the question. – BrianS Nov 06 '13 at 21:00

3 Answers3

14

$dompdf->set_base_path() isn't where you specify your CSS. That method gives you the opportunity to define a base path that is appended to relative paths in the document.

Your CSS should be part of the HTML you feed to dompdf. Something like the following:

<?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");
?>

Think of dompdf as a web browser that renders to PDF instead of a screen. You feed it a valid HTML document just like you would any web browser.

BrianS
  • 13,284
  • 15
  • 62
  • 125
1

This is what helped me for v1.0.2. I have little bit specific use case in which I am generating PDF from CLI.

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

and then

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

When calling CLI script from another directory than document root, you have to also set

$dompdf->setBasePath($this->projectDir . DIRECTORY_SEPARATOR . 'www');
Kamil P.
  • 118
  • 12
0

dompdf supports the some CSS 2.1 selector syntaxes. dompdf also supports elements with multiple class attributes (e.g. <p class="red bold">foo</p> matches p.red and p.bold).

Note that the CSS selectors are case sensitive in dompdf (e.g. .foo will not match <div class="FOO">bar</div>)

Read http://code.google.com/p/dompdf/wiki/CSSCompatibility or Git https://github.com/dompdf/dompdf/wiki/CSSCompatibility

Refer DOMPDF doesn't work with external css file

CSS not working with DOMPDF

mbomb007
  • 3,788
  • 3
  • 39
  • 68
internals-in
  • 4,798
  • 2
  • 21
  • 38