本文實例講述了在linux中利用HTML2FPDF與wkhtmltoimage把網頁html直接生成pdf格式的文件方法,分享給大家供大家參考。具體實現方法如下:
找到一款在FPDF和HTML2FPDF源碼基礎上開發的一套開源程序,作者很給力。基本解決了中文(以及日語、韓語及東南亞和全球語言)亂碼的問題,在Windows/Linux開發環境下測試可用,不需要安裝別的組件支持,是沒有VPS和獨立服務器的網站開發者的福音。
不多說,源碼名稱是MPDF,官方地址是:http://www.mpdf1.com/ 已經更新到5.6版。
到官網下載,解壓到網站目錄下,使用。
復制代碼 代碼如下:<?php
include('mpdf.php');
$mpdf=new mPDF('UTF-8','A4','','',15,15,44,15);
$mpdf->useAdobeCJK = true;
$mpdf->SetAutoFont(AUTOFONT_ALL);
$mpdf->SetDisplayMode('fullpage');
//$mpdf->watermark_font = 'GB';
//$mpdf->SetWatermarkText('中國水印',0.1);
$url = 'http://www.你的域名.com/';
$strContent = file_get_contents($url);
//print_r($strContent);die;
$mpdf->showWatermarkText = true;
$mpdf->SetAutoFont();
//$mpdf->SetHTMLHeader( '頭部' );
//$mpdf->SetHTMLFooter( '底部' );
$mpdf->WriteHTML($strContent);
$mpdf->Output('ss.pdf');
//$mpdf->Output('tmp.pdf',true);
//$mpdf->Output('tmp.pdf','d');
//$mpdf->Output();
exit;
?>
PASS:需要注意的是,PHP文件要是UTF-8。不用心情天空貼出的代碼,自己寫時出現方格亂碼時,可以在config.php文件裡的$this->useAdobeCJK = false;修改成true或者必須標注:$mpdf->useAdobeCJK = true; 官方有文檔,可以自己摸索。
這個不完美方法,MPDF只能解析相對簡單的css(不能解析js和css中ul li等標簽)。現在既然使用了wkhtmltoimage擴展,也就不在乎wkhtmltopdf的使用了。
同樣,wkhtmltoimage 0.11會出現錯誤,需要下載0.10.0_rc2版。
32位:
復制代碼 代碼如下:wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.10.0_rc2-static-i386.tar.bz2
tar jxf wkhtmltopdf-0.10.0_rc2-static-i386.tar.bz2
cp wkhtmltoimage-i386 /usr/local/bin/wkhtmltopdf
64位
復制代碼 代碼如下:wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.10.0_rc2-static-amd64.tar.bz2
mv wkhtmltoimage-0.10.0_rc2-static-amd64.tar.bz2 wkhtmltoimage-0.10.0_rc2-static-amd64.tar
tar -xvf wkhtmltopdf-0.10.0_rc2-static-amd64.tar
mv wkhtmltoimage-amd64 /usr/bin/wkhtmltopdf測試 wkhtmltopdf http://www.你的域名.com/ 你的域名.pdfphp shell_exec() 執行shell_exec('/usr/local/bin/wkhtmltopdf http://www.你的域名.com/ /usr/local/wwwroot/你的域名.com/你的域名.pdf');
希望本文所述對大家的php程序設計有所幫助。