|
|
|
พอจะมีวิธีที่จะทำให้การออกรายงานเป็น pdf ให้มันขึ้นหน้าใหม่แบบไม่ให้ตารางขาดเป็นท่อนๆ |
|
|
|
|
|
|
|
อยากทราบว่าพอจะมีวิธีที่จะทำให้ PDF ขึ้นหน้าใหม่แบบตารางไม่ขาดตอน
คือตอนนี้ออกมาแล้วได้แบบนี้ครับ ขึ้นหน้าใหม่ได้ แต่ตารางมันขาดไปหน้า 2 อีกท่อนนึงครับ
ส่วนโค๊ดที่ใช้คือ
Code (PHP)
<html>
<head>
<title>PHP PDF</title>
</head>
<body>
<?
define('FPDF_FONTPATH','font/');
require('fpdf.php');
class PDF extends FPDF
{
function Footer() {
//นับจากขอบกระดาษด้านล่างขึ้นมา 10 มม.
$this->SetY( -10 );
//กำหนดใช้ตัวอักษร Arial ตัวเอียง ขนาด 5
$this->SetFont('Arial','I',5);
$this->Cell(0,10, 'Create by Mee Fah English School' ,0,0,'L');
//พิมพ์ หมายเลขหน้า ตรงมุมขวาล่าง
$this->Cell(0,10, 'page '.$this->PageNo().' of tp' ,0,0,'R');
}
//Load data
function LoadData($file)
{
//Read file lines
$lines=file($file);
$data=array();
foreach($lines as $line)
$data[]=explode(';',chop($line));
return $data;
}
//Simple table
function BasicTable($header,$data)
{
//Data
$j=1;
foreach ($data as $eachResult)
{
// p_test
if($eachResult["P_TEST"]=='0'){
$p_test= 'No Test';
}else if($eachResult["P_TEST"]=='1'){
$p_test= 'Vocab';
}else if($eachResult["P_TEST"]=='2'){
$p_test= 'Listening';
}else if($eachResult["P_TEST"]=='3'){
$p_test= 'Speaking';
}else if($eachResult["P_TEST"]=='4'){
$p_test= 'Writing';
}else if($eachResult["P_TEST"]=='5'){
$p_test= 'Grammar';
}else if($eachResult["P_TEST"]=='6'){
$p_test= 'Reading';
}
// date
$datearray=explode("-",$eachResult[P_DATE]);
$date=$datearray[2];
$date_month=$datearray[1];
$year = $datearray[0];
//Header
//$w=array(10,25,50,20,40,35);
//Header
//for($i=0;$i<count($header);$i++)
//$this->Cell($w[$i],7,$header[$i],1,0,'C');
// $this->Ln();
$this->Cell(15,8,"No. ".$j,1,0,'C');
$this->Cell(35,8,"Date : ".$date.'-'.$date_month.'-'.$year,1,0,'C');
$this->Cell(30,8,"Test : ".$p_test,1,0,'C');
$this->Cell(30,8,"Full Score : ".$eachResult["P_FULL"],1,0,'C');
$this->Cell(40,8,"Student Score : ".$eachResult["P_ST_SCORE"],1,0,'C');
$this->Cell(30,8,"Percent : ".$eachResult["P_PERCENT"],1,0,'C');
$this->Ln();
//$this->Cell(20,6,"Class report",1,'L');
$this->multiCell(180,8,"-- Student Behavior - ".$eachResult["P_STUDENTBEHAVIOR"]."\n-- Lessons Covered - ".$eachResult["P_LESSONE"]."\n-- H/W, Assignment - ". $eachResult["P_TEST_PRE"]."\n-- Test Preparation - ".$eachResult["P_HW"],1, 'L');
$this->Ln(5,1,1);
$j++;
}
}
}
$pdf=new PDF();
$pdf->AliasNbPages( 'tp' );
$pdf->SetFont('Arial','',12);
//Column titles
$header=array('No.','Date','Test','Full Score','Student Score','Percent');
//Data loading
//*** Load MySQL Data ***//
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("db_mfes");
mysql_query("set NAMES'UTF8'");// set อักขระให้เป็น Utf8 เพิ่มตรงนี้เลยครับ รับรองได้ชัวครับ
$strSQL = "SELECT * FROM personal
where R_ID =13" ;
$objQuery = mysql_query($strSQL);
$resultData = array();
for ($i=0;$i<mysql_num_rows($objQuery);$i++) {
$result = mysql_fetch_array($objQuery);
array_push($resultData,$result);
}
//************************//
$pdf->SetFont('Arial','',10);
//*** Table 1 ***//
$pdf->AddPage();
//$pdf->Image('logo.png',80,8,33);
$pdf->Ln(35);
$pdf->BasicTable($header,$resultData);
$pdf->Output("classreport.pdf","F");
?>
PDF Created Click <a href="classreport.pdf">here</a> to Download
</body>
</html>
Tag : PHP, CakePHP
|
|
|
|
|
|
Date :
2014-01-15 11:04:09 |
By :
wita |
View :
1052 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูจากตัวเลขก็ต้องลองขยับด้านบนขึ้นครับ ไม่งั้น ลด Ln ดู อาจจะขึ่นไปได้เอง
|
|
|
|
|
Date :
2014-01-15 11:06:54 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือข้อมูลที่เรียกมาแสดงไม่แน่นอนครับ บางทีมาก บางทีน้อย จึงทำไห้ขาดไปหน้าถัดไป ไม่รุมีวิธีไหนอีกบ้างครับ
|
|
|
|
|
Date :
2014-01-16 11:18:33 |
By :
wita |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|