转载注明 出处!
一直都在了解FPDF 生成PDF,和一些基于FPDF的生成PDF的类,没有一个适合的报表方案.
将网页生成PDF是一种好的方法```但得控制表格````种种原因,触使我自己写一个方法来生成PDF
报表.
须下载fpdf 和fpdf 中文化类.
这过程中,得处理中文乱码,....
效果如下:
原码如下:
<?
require('chinese.php');
$pdf=new PDF_Chinese();
$pdf->AddGBFont('simsun','宋体');
$pdf->Open();
$pdf->AddPage();
$pdf->SetAutoPageBreak(true);
$pdf->SetFont('simsun','',10);
$conn=mysql_connect('localhost','root','');
mysql_select_db('j',$conn);
mysql_query("SET NAMES 'gb2312'");
$sql=mysql_query("select * from tssb limit 0,565");
$pdf->SetY(20);
while(($array =mysql_fetch_array($sql)) != false)
{
$pdf->SetX(15);
$Mywidth=array(15,20,20,40,20,20,20,20);
$Mytable=array($array["ls"],$array["cd"],$array["in"],$array["cm"],$array["h"],$array["c"],$array["n"],$array["d"]);
$pdf->Row($Mywidth,$Mytable,10);
$pdf->ln();
}
$pdf->Output();
?>
新增函数:
class PDF_Chinese extends FPDF
{
//表格输出
function Row($Arr,$Row,$MyHeight){
$MyTable=$Row;
//SetWidths($arr);
$Width=$Arr;
for($i=0;$i<count($Width);$i++){ //循环输出表头
// $this->SetX(20);
$this->Cell($Width[$i],$MyHeight,$MyTable[$i],1,0);
// $this->Ln();
}
}
这样一个表格就完整输出啦``
附中文类:
<?php
require('fpdf.php');
$Big5_widths=array(' '=>250,'!'=>250,'"'=>408,'#'=>668,'$'=>490,'%'=>875,'&'=>698,'/''=>250,
'('=>240,')'=>240,'*'=>417,'+'=>667,','=>250,'-'=>313,'.'=>250,'/'=>520,'0'=>500,'1'=>500,
'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>250,';'=>250,
'<'=>667,'='=>667,'>'=>667,'?'=>396,'@'=>921,'A'=>677,'B'=>615,'C'=>719,'D'=>760,'E'=>625,
'F'=>552,'G'=>771,'H'=>802,'I'=>354,'J'=>354,'K'=>781,'L'=>604,'M'=>927,'N'=>750,'O'=>823,
'P'=>563,'Q'=>823,'R'=>729,'S'=>542,'T'=>698,'U'=>771,'V'=>729,'W'=>948,'X'=>771,'Y'=>677,
'Z'=>635,'['=>344,'//'=>520,']'=>344,'^'=>469,'_'=>500,'`'=>250,'a'=>469,'b'=>521,'c'=>427,
'd'=>521,'e'=>438,'f'=>271,'g'=>469,'h'=>531,'i'=>250,'j'=>250,'k'=>458,'l'=>240,'m'=>802,
'n'=>531,'o'=>500,'p'=>521,'q'=>521,'r'=>365,'s'=>333,'t'=>292,'u'=>521,'v'=>458,'w'=>677,
'x'=>479,'y'=>458,'z'=>427,'{'=>480,'|'=>496,'}'=>480,'~'=>667);
$GB_widths=array(' '=&g