我正在使用Zend Framework和DOMPDF库.当我用内联css测试它时,一切都很完美.但是当我试图将css代码移动到外部文件时,规则并未应用于html页面.
这是我的代码.
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");
Run Code Online (Sandbox Code Playgroud)
2.相应视图的代码(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>
Run Code Online (Sandbox Code Playgroud)
3.和我的CSS文件:
div {color: red;}
Run Code Online (Sandbox Code Playgroud)
如何使其工作?
更新:
为了使它工作,我改变了以下的事情:
1.在控制器的操作中添加外部文件的基本路径
$dompdf->set_base_path(APPLICATION_PATH."/../public/themes/css/");
Run Code Online (Sandbox Code Playgroud)
2.在视图中更改链接标记的href属性.使其相对于步骤1中设置的基本路径.
<link type="text/css" href="pdf.css" rel="stylesheet" />
Run Code Online (Sandbox Code Playgroud) 我正在使用DOMPDF(v 0.5.2)将html页面转换为pdf文件.
PHP脚本运行后(如预期的那样)显示pdf文件,但没有样式应用于任何内容.据我所知,浮动属性不适用于DOMPDF,所以我必须做一些工作来解决这个问题,但是甚至没有应用字体样式.
我尝试了包括样式的所有三种方法:附加样式表,
<link href="styles.css" rel="stylesheet" type="text/css">
Run Code Online (Sandbox Code Playgroud)
在标题中写样式,
<style>...</style>
Run Code Online (Sandbox Code Playgroud)
和内联样式.
<div class="..." style="...">
Run Code Online (Sandbox Code Playgroud)
用于创建pdf的php文件看起来像这样......
<?php
ob_start();
?>
<html>
<head>
<link href="flhaha.css" rel="stylesheet" type="text/css">
</head>
<body>
... content (divs, etc)
</body>
</html>
<?php
require_once("../../scripts/dompdf/dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html(ob_get_clean());
$dompdf->render();
$dompdf->stream('test.pdf');
?>
Run Code Online (Sandbox Code Playgroud)
内容中的图像可以正常加载并在pdf打开时正确显示,但仍然没有样式.
提前致谢!
编辑#1:上面的标签是"风格",而不是"风格".修正了错字.
我有这段代码可以将一些数据导出到 pdf 中。我想从外部 css 文件添加 css (在使用的 html 中没有提到)
/*********************************** Export PDF ****************************************************/
if($request->query->get('exportPDF')!= null){
// Configure Dompdf according to your needs
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
// Instantiate Dompdf with our options
$dompdf = new Dompdf($pdfOptions);
// Retrieve the HTML generated in our twig file
$html = $this->renderView('dashboard/user_table.html.twig', [
'users' => $users
]);
// Load HTML to Dompdf
$dompdf->loadHtml($html);
// (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
$dompdf->setPaper('A3', 'landscape');
// Render the HTML as PDF …Run Code Online (Sandbox Code Playgroud)