准备工作
首先查询了相关的类库,有FPDF,zendPDF,TcPDF等等。首先看了下先选择了FPDF,可以说除了中文字符以外没有什么问题,中文乱码而且看了下最新版本没有很好的解决方案,所以只能放弃。后来就专门找支持中文的发现了TcPDF,开始也是中文字体支持不是很好,但是发现了有人做了中文的语言包才使得TcPDF更加完美起来。
简介
TCPDF是一个流行的用于生成PDF文档的PHP类。TCPDF是当前唯一完整支持UTF-8Unicode以及从右至左书写的语言包括双向文稿的PHP库。
TCPDF说明文档
一、首先调用TCPDF文件
require_once('tcpdf.php');
二、实例化TCPDF类页面方向(P=肖像,L=景观)、测量(mm)、页面格式
$pdf=newTCPDF('P','mm','A4',true,'UTF-8',false);
代码实现:
vendor('Pdf');
$pdf=new\TCPDF(PDF_PAGE_ORIENTATION,PDF_UNIT,PDF_PAGE_FORMAT,true,'UTF-8',false);
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('sunnier');
$pdf->SetTitle('123');
$pdf->SetSubject('123');
$pdf->SetKeywords('sunnier');
//setdefaultheaderdata
$pdf->SetHeaderData(PDF_HEADER_LOGO,PDF_HEADER_LOGO_WIDTH,PDF_HEADER_TITLE,PDF_HEADER_STRING);
//setheaderandfooterfonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN,'',PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA,'',PDF_FONT_SIZE_DATA));
//setdefaultmonospacedfont
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
//setmargins
$pdf->SetMargins(PDF_MARGIN_LEFT,PDF_MARGIN_TOP,PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
//setautopagebreaks
$pdf->SetAutoPageBreak(TRUE,PDF_MARGIN_BOTTOM);
//setimagescalefactor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
//setsomelanguage-dependentstrings(optional)
global$l;
$pdf->setLanguageArray($l);
//---------------------------------------------------------
//setfont
$pdf->SetFont('simfang','',10);
//-----------------------------
//Printatable
//addapage
$pdf->AddPage();
//随便写HTML
$html='adsf';
//outputtheHTMLcontent
$pdf->writeHTML($html,true,false,true,false,'');
//resetpointertothelastpage
$pdf->lastPage();
$pdf->Output('哈哈哈'.pdf','I');
以上,可以不断添加addPage,添加多页,最后Output输出自己的名字的文件即可。
|