Ich benutze Zend Framework und DOMPDF-Bibliothek. Wenn ich es mit Inline-CSS teste, funktioniert alles perfekt. Aber wenn ich versuchte, CSS-Code in die externe Datei zu verschieben, werden Regeln nicht auf die HTML-Seite angewendet.DOMPDF funktioniert nicht mit externen CSS-Datei
Hier ist mein Code.
- Code of Aktion des Controllers, die pdf erzeugen
require_once ("dompdf/dompdf_config.inc.php");
$this->_helper->layout->disableLayout();
$html = $this->view->render('index/dom.phtml');
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$pdfContent = $dompdf->output();
file_put_contents('sample.pdf', $pdfContent);
die("test");
2.Code entsprechender Ansicht (Index/dom.phtml)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link type="text/css" href="/themes/css/pdf.css" rel="stylesheet" media="screen"/>
</head>
<body>
<div>Tamara testing</div>
<table border="1">
<tr>
<th>Column 1</th>
<th>Column 2</th>
</tr>
<tr>
<td>Value 1</td>
<td>Value 2</td>
</tr>
</table>
</body>
</html>
3.Und meine CSS-Datei:
div {color: red;}
Wie machen es funktioniert?
UPDATE:
Damit es funktioniert ich folgende Dinge geändert:
1.In Controllers Aktion hinzufügen Basispfad für externe Dateien
$dompdf->set_base_path(APPLICATION_PATH."/../public/themes/css/");
2.In Änderung anzeigen href Attribut das Link-Tag Machen Sie es sich mit dem Basispfad relativ in Schritt gesetzt 1.
<link type="text/css" href="pdf.css" rel="stylesheet" />
Falls jemand dies in einer Suchmaschine findet (genau wie ich), beachten Sie bitte, dass es eine andere Option namens 'DOMPDF :: set_protocol()' gibt, siehe meine Antwort unten für weitere Informationen. –