我正在使用html2pdf,它與CI 2+的罰款。
它花了我一些時間爲我的案例找到正確的例子,但我終於成功了。
我是這樣做的:
1 INSTALL
獲取在HTML2PDF:http://www.html2pdf.fr/en
複製HTML2PDF文件夾到你的CI /應用/ THIRD_PARTY/
*(你會得到類似於:application/third_party/html2pdf/html2pdf.class.php)*
2-控制器函數來處理PDF
<?php
class Somecontroller {
function dopdf($mydat){
$this->CI->output->enable_profiler(false);
$this->CI->load->library('parser');
require_once(APPPATH.'third_party/html2pdf/html2pdf.class.php');
// set vars
$tpl_path = 'path/to/view_tpl.php';
$thefullpath = '/path/to/file_pdf.pdf';
$preview = false;
$previewpath = '/path/to/preview_pdf.pdf';
// PDFs datas
$datas = array(
'first_name' => $mydat->first_name,
'last_name' => $mydat->last_name,
'site_title' => config_item('site_title'),
);
// Encode datas to utf8
$tpl_data = array_map('utf8_encode',$datas);
//
// GENERATE PDF AND SAVE FILE (OR OUTPUT)
//
$content = $this->CI->parser->parse($tpl_path, $tpl_data, TRUE);
$html2pdf = new HTML2PDF('P','A4','fr', true, 'UTF-8', array(7, 7, 10, 10));
$html2pdf->pdf->SetAuthor($tpl_data['site_title']);
$html2pdf->pdf->SetTitle($tpl_data['site_title']);
$html2pdf->pdf->SetSubject($tpl_data['site_title']);
$html2pdf->pdf->SetKeywords($tpl_data['site_title']);
$html2pdf->pdf->SetProtection(array('print'), '');//allow only view/print
$html2pdf->WriteHTML($content);
if (!$preview) //save
$html2pdf->Output($thefullpath, 'F');
else { //save and load
$html2pdf->Output($previewpath, 'D');
}
}
}
3-視圖文件
創建像在「應用/視圖/路徑文件的模板/ to/view_tpl.php「
使用佔位符{myvar}而不是<?php echo $myvar ?>
請記住!不包括:HTML,頭,身體標籤!
<!-- do not include: html,head, body tags -->
<style type="text/css">
<!--
P {text-align:justify;font-size: 12pt;}
li {text-align:justify;font-size: 12pt;}
table.page_footer {width: 100%; border: none; border-top: solid 1px #000000; }
-->
</style>
<page backtop="14mm" backbottom="14mm" backleft="10mm" backright="10mm" style="font-size: 12pt">
<page_footer>
<table class="page_footer">
<tr>
<td style="width: 100%; text-align: right">
page [[page_cu]]/[[page_nb]]
</td>
</tr>
</table>
</page_footer>
<div style="width:100%;border: 1px solid #000000;text-align:center">
<h1><b>{site_title}</b></h1></div>
<p>
Firstname: {first_name}<br>
lastname: {last_name}<br>
</p>
<img src="<?php echo BASE_URL.'assets/img/test.png'; ?>" width="490" height="306">
</page>
4. PDF文件目的地
PDF格式可以在任何地方保存。只要指定的控制器功能的目的地(見$thefullpath
和$previewpath
)
希望它可以幫助!
來源
2012-12-13 23:28:31
pit
您使用哪個庫生成PDF? –
@Runicer:我使用html2pdf lib在我的網站上生成PDF,並確定。但mPDF似乎也沒關係。如果您需要精確的幫助,請儘量更精確;) – pit
我使用了mPDF。它與PHP/HTML/CSS兼容,但不支持UTF-8編碼?我嘗試使用UTF-8選項實例化,但它不起作用 – Runicer