gpt4 book ai didi

css - DOMPDF 不适用于外部 css 文件

转载 作者:技术小花猫 更新时间:2023-10-29 10:28:59 26 4
gpt4 key购买 nike

我正在使用 Zend Framework 和 DOMPDF 库。当我用内联 css 测试它时,一切正常。但是当我尝试将 css 代码移动到外部文件时,规则不适用于 html 页面。

这是我的代码。

  1. Controller Action 代码,生成pdf

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.对应view的代码(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.还有我的css文件:

div {color: red;}

如何让它发挥作用?

更新:

为了让它工作,我更改了以下内容:

1.在 Controller 的 Action 中添加外部文件的基本路径

$dompdf->set_base_path(APPLICATION_PATH."/../public/themes/css/");

2.在 View 中改变链接标签的href属性。使其相对于步骤 1 中设置的基本路径。

<link type="text/css" href="pdf.css" rel="stylesheet" />

最佳答案

这实际上与 Zend Framework 无关,但您需要为 DomPDF 提供加载“外部”文件的正确路径。

$dompdf = new DOMPDF();
$dompdf->setBasePath(realpath(APPLICATION_PATH . '/path/to/css/'));
$dompdf->loadHtml($html);
$dompdf->render();

另见 manual用于此功能的 DomPDF。

关于css - DOMPDF 不适用于外部 css 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17185531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com