我已经设法在Yii中使用pdfable创建pdf文件。 pdf文档的问题是它包括主菜单作为列表项,它不应该。这是从哪里来的,如何阻止它?
控制器
$asaarea = Yii::app()->db->createCommand("SELECT distinct(asaarea) FROM `hdb`.`lookupcountry`")->queryAll();
$results = array();
foreach ($asaarea as $key => $value) {
$results[$value['asaarea']] = Yii::app()->db->createCommand("SELECT
StartDATE,
PROJECT,
PROJCODE,
PROJID,
ActualEndDate,
OFFICE,
PERCENT,
PERCENTPlanned,
KM,
KMPlanned,
COUNTRY,
AREA,
PROJINFO
FROM view_webprojectreport where asaarea = '" . $value['asaarea'] . "'")->queryAll();
}
$pdf = $this->createPdf();
$pdf->setOptions(array('orientation'=>'Landscape',
'margin-top' => 5,
'margin-right' => 10,
'margin-bottom' => 5,
'margin-left' => 10,
)
);
$pdf->renderPage('print',array('results'=>$results));
$pdf->send('ProjectReport_'.date('M-Y').'.pdf');
print.php
<head>
<style type='text/css'>
@media print{thead{display:table-header-group; margin-bottom:2px;}}
@page{margin-top:1cm;margin-left:1cm;margin-right:1cm;margin-bottom:1.5cm;}}
.odd {
background: none repeat scroll 0 0 #E5F1F4;
}
.even {
background: none repeat scroll 0 0 #F8F8F8;
}
table tbody tr:hover{
background: none repeat scroll 0 0 lightgreen;
}
table tbody tr{
font-size:10pt;
}
body
{
margin: 0mm 0mm 0mm 0mm;
}
.grey{
background: lightgrey;
}
.center{
margin: 0 auto;
text-align: center;
}
.size{
font-size:15px;
}
table{
padding-botton:30px;
}
thead{
font-size:11px;
font-weight: normal;
}
</style>
</head>
<!-- <body onload="window.print();window.close();">-->
<body>
<h1 class="grey center">Project Report</h1>
<table>
<?php
$count = 0;
$class= null;
foreach($results as $key=>$data) {
?>
<tr class="grey size">
<th colspan=12><?=$key ?></th>
</tr>
<thead>
<tr>
<th>Start Date</th>
<th>Name</th>
<th>Code</th>
<th>Actual End Date</th>
<th>Office</th>
<th>%</th>
<th>% Planned</th>
<th>KM</th>
<th>KM Planned</th>
<th>Country</th>
<th width="150">AREA</th>
<th>PROJ INFO</th>
</tr>
</thead>
<tbody>
<?php foreach($data as $column=>$q) { ?>
<?php
$class = ($count % 2 === 0) ? 'odd' : 'even';
$this->renderPartial('_report',array('data'=>$q,'class'=>$class));
$count++;
}
?>
</tbody>
<?php }
?>
</table>
</body>
答案 0 :(得分:1)
你没有发布这个,所以这只是一个猜测,但它可能是你的布局文件中的菜单。
Pdfable将每个页面呈现为常规Yii页面 - 它与renderPartial()
不同。因此,您可能应该创建特定于PDF的布局并将其配置为布局文件。例如,您可以创建views/layouts/pdf.php
:
<?php
// In the simplest case you only output $content here. But
// you could also add a nice header to all your PDFs.
echo $content;
在print.php
中,您可以在最上面添加此行。
<?php $this->layout = 'pdf'; ?>