|
|
|
อยากทราบวิธีการตัดคำเองอัติโนมัติหรือการขึ้นบรรทัดใหม่เมื่อออกรายงานเป็น pdf |
|
|
|
|
|
|
|
ตอนนี้มันแสดงยาวเลยครับ การขึ้นบรรทัดไหม่กับการตัดคำเองต้องใช้ ฟังชั่นอะไรหรอครับ
Code (PHP)
foreach ($data as $eachResult)
{
$this->Cell(30,6,$eachResult["P_DATE"],1);
$this->Cell(75,6,$eachResult["P_STUDENTBEHAVIOR"]."".$eachResult["P_LESSONE"],1);
$this->Cell(55,6,$eachResult["U_LAST"],1);
$this->Cell(10,6,$eachResult["U_NICK"],1,0,'C');
$this->Cell(10,6,$eachResult["U_TELS"],1);
$this->Ln();
}
}
Tag : PHP, CakePHP
|
|
|
|
|
|
Date :
2013-12-25 17:18:03 |
By :
wita |
View :
7298 |
Reply :
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คิดว่าถ้าเป็น PDF นี่ทำได้ยากน่ะครับ
|
|
|
|
|
Date :
2013-12-26 08:55:03 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ Library ตัวไหนครับลองดู TCPDF เห็นมันทำได้
Code (PHP)
<?php
require_once('../config/lang/eng.php');
require_once('../tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->AddPage();
$html = <<<EOD
<h1>Table 1</h1>
<table cellpadding="2" cellspacing="1" border="1">
<tr valign="center">
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
<td>Column 4</td>
<td>Column 5</td>
<td>Column 6</td>
<td>Column 7</td>
<td>Column 8</td>
<td>Conversions</td>
<td>Transactions</td>
</tr>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
<td>Cell 3</td>
<td>Cell 4</td>
<td>Cell 5</td>
<td>600.00</td>
<td>7,777</td>
<td>88,888</td>
<td>999,999</td>
<td>1,000,000</td>
</tr>
</table>
<h1>Table 2</h1>
<table cellpadding="5" cellspacing="0" border="1">
<tr valign="center">
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
<td>Column 4</td>
<td>Column 5</td>
<td>Column 6</td>
<td>Column 7</td>
<td>Column 8</td>
<td>Conversions</td>
<td>Transactions</td>
</tr>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
<td>Cell 3</td>
<td>Cell 4</td>
<td>Cell 5</td>
<td>600.00</td>
<td>7,777</td>
<td>88,888</td>
<td>999,999</td>
<td>1,000,000</td>
</tr>
</table>
EOD;
$pdf->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', false);
$pdf->Output('table_test.pdf', 'I');
?>
|
|
|
|
|
Date :
2013-12-26 11:05:35 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าอีกวิธีง่ายๆ คือ เขียน php เป็นหน้า report ธรรมดา แล้วใช้โปรแกรม doPDF(Freeware) จะทำหน้าที่คล้ายๆเราสั่งเครื่องปริ้น จะแปลงเป็น PDF ให้เรา ส่วนใหญ่จะไม่ค่อยเพี้ยนนะครับ ทำให้เราไม่ต้องมานั่ง coding PDF ด้วย
ปล. อันนี้เสนอแนวเฉยๆ นะครับ ^^!!
|
|
|
|
|
Date :
2013-12-26 11:26:41 |
By :
FreshyMusiC |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองใช้ MultiCell ดูค่ะ ทดสอบดูนะคะ
Code (PHP)
foreach ($data as $eachResult)
{
$this->MultiCell(30,6,$eachResult["P_DATE"],1, 'C');
$this->MultiCell(75,6,$eachResult["P_STUDENTBEHAVIOR"]."".$eachResult["P_LESSONE"],1, 'L');
$this->MultiCell(55,6,$eachResult["U_LAST"],1,'L');
$this->MultiCell(10,6,$eachResult["U_NICK"],1,0,'C');
$this->MultiCell(10,6,$eachResult["U_TELS"],1,'L');
$this->Ln();
}
}
|
|
|
|
|
Date :
2013-12-27 09:39:57 |
By :
s_ting |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ เอามาเป็นแนวทางสำหรับคนอื่นๆที่เจอปัญหาคล้ายๆกัน
Code (PHP)
<html>
<head>
<title>ขอบพระคุณ ThaiCreate.Com 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>
|
|
|
|
|
Date :
2014-01-02 17:57:35 |
By :
wita |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จัดไปครับ
|
|
|
|
|
Date :
2014-01-08 09:43:39 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|