CAN ANYONE ONEguide me。我不知道如何继续前进。事情是我有描述,图像作为table1 userA登录的字段,userA创建此记录与decitpion和图像字段我想生成一个带有图像和解密的pdf文件以及提供登录时下载pdf文件的userB的下载链接。
我需要知道可以使用yii
从db am中的数据生成pdf文件我的问题如下
有可能吗? 如果没有更好的建议? 如果可能的话,他们是任何延期 任何人都可以提供一些指导。
请让我知道我是第一次这样做但不确定如何继续
答案 0 :(得分:1)
可能是的。我不使用扩展名我使用名为HTML2PDF的库 http://www.html2pdf.fr/en 我把它放在我的扩展文件夹中。 我创建了一个包含此代码的pdf动作
<?php
class Pdf extends CAction {
public function run() {
$controller = $this->getController();
\Yii::import('core.extensions.Html2Pdf.HTML2PDF');
//use the existing filters
$model_name = $controller->modelName();
$model = new $model_name('search');
$dataProvider = $model->active()->search();
//remove the pagination
$dataProvider->setPagination(false);
//get the html to transform
$content = $controller->renderPartial('pdf',array(
'dataProvider'=>$dataProvider,
'title'=>$controller->modelName() . ' - '.date('F j, Y, G:i'),
), true);
try
{
if(isset($_GET['test'])) {
echo $content;
} else {
//create the PDF
$html2pdf = new HTML2PDF('P', 'A4', 'en');
$html2pdf->setDefaultFont('Arial');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output($controller->modelName() . '_'.date('Y-m-d').'.pdf');
}
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}
}
}
我可以附加到任何类似的控制器
/**
* @return array actions to be mapped to this controller
*/
public function actions(){
return array(
'csv'=>array(
'class'=>'core.components.actions.Csv',
'field_list'=>array('t.id', 't.name', 't.status'),
),
'pdf'=>array(
'class'=>'core.components.actions.Pdf',
),
);
}
。有一个名为pdf的视图,它具有我想要导出为PDF的内容。我实际上是在创建简单的HTML(所以没有什么非常复杂的,大多数样式都是内联的)。一个例子是
<page backtop="22mm" backbottom="8mm" backleft="0" backright="0">
<page_header>
<h1> <?php echo $title?></h1>
<table backleft="10mm" style="width: 700px;" align="center">
<tr>
<td style="width: 10%; border-bottom: 1px solid black;">ID</td>
<td style="width: 75%; border-bottom: 1px solid black;">Name</td>
<td style="width: 15%; border-bottom: 1px solid black;">Status</td>
</tr>
</table>
</page_header>
<page_footer>
<table style="width: 700px; border-top: 1px solid black;" align="center">
<tr>
<td style="text-align: left; width: 50%"></td>
<td style="text-align: right; width: 50%">page [[page_cu]]/[[page_nb]]</td>
</tr>
</table>
</page_footer>
<table style="width: 700px;" align="center">
<?php
foreach($dataProvider->getData() as $record) {
?> <tr>
<td style="width: 10%;"><?php echo $record->id?></td>
<td style="width: 75%;"><?php echo $record->name?></td>
<td style="width: 15%;"><?php echo ucfirst($record->status)?></td>
</tr>
<?php
}
?> </table>
</page>