|
|
|
การปรินท์ข้อมูลที่เลือกในตาราง PHP กับ PDF เช่น การพิมพ์ใบสมัครแสดงชื่อคนสมัครแล้วเลือกปรินท์ได้ค่ะ |
|
|
|
|
|
|
|
$pdf->Cell(0,10,'Welcome to www.ThaiCreate.Com',0,1);
ตรงนี้เป็นการพิมพ์ใช่มั้ยค่ะ แล้วถ้าเราดึงฟิลด์จาก MySQL มาพิมพ์ต้องทำยังไงค่ะ
แบบว่าเลือกมาจากตารางที่ Query ขึ้นมาน่ะค่ะ
ขอบคุณค่ะ
|
|
|
|
|
Date :
2012-07-26 02:16:00 |
By :
tukkatee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้เป็นโค๊ดใบเสร็จร้านหนังสือที่ผมทำ
การ Query ข้อมูลก็เป็นแบบ Select ..... From ...... Where
Code (PHP)
<?php
require("fpdf.php");
require("Function.php");
class PDF extends FPDF{
//Header Pages
function Header(){
$this->AddFont('THSarabun','b','THSarabunb.php');
$this->SetFont('THSarabun','b',25);
$this->SetTextColor(52,170,245);
$this->Cell( 0 , 0 ,'Krungsri Bookshop' , 0 , 1 , 'C' );
$this->SetFont('THSarabun','',16);
$this->SetTextColor(0,0,0);
$this->Cell( 0 , 0 ,'หน้า '.$this->PageNo() , 0 , 1 , 'R' );
$this->Ln(8);
$this->SetFont('THSarabun','b',14);
$this->SetTextColor(0,0,0);
$this->Cell( 0 , 0 ,'ใบสั่งซื้อชั่วคราว' , 0 , 1 , 'C' );
$this->Ln(8);
$header=array('รายการสั่งซื้อ','ราคา','จำนวน','รวม');
}
//Simple table
function BasicTable($header,$data){
$this->SetTextColor(0,0,0);
$this->SetDrawColor(52,170,245);
$this->SetFillColor(52,170,245);
$w=array(70,40,30,30);
//Header table
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C',true);
$this->Ln();
//Data table
$this->SetTextColor(0,0,0);
$result=0;
$i=0;
$row=8;#Max rows of first page.
foreach ($data as $eachResult) {
$i=$i+1;
$total=$eachResult["book_price"]*$eachResult["quantity"];
$this->Cell(70,7,$eachResult["book_title"],1,0,'C');
$this->Cell(40,7,$eachResult["book_price"],1,0,'C');
$this->Cell(30,7,$eachResult["quantity"]." เล่ม ",1,0,'C');
$this->Cell(30,7,$total,1,0,'C');
$this->Ln();
if ($i%$row==0){
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C',true);
$this->Ln();
$i=0;
$row=13;#Max rows of other page.
}
$result=$result+$total;
}
$this->Cell(170,7,'จำนวนเงินทั้งหมด : '.$result." บาท ",1,0,'R');
$this->Ln(13);
}
//Footer Page
function Footer(){
$this->AddFont('THSarabun','','THSarabun.php');
$this->SetFont('THSarabun','',16);
$this->SetY(-15);
$this->Cell(0,0,'ร้าน Krungsri Bookshop',0,1,'C');
$this->Ln(8);
$this->Cell(0,0,'83 หมู่ 11 ถ.สระบุรี-หล่มสัก ต.สะเดียง อ.เมือง จ.เพชรบูรณ์ 67000 โทร :056717100',0,1,'C');
}
}
//Column titles
$header=array('รายการสั่งซื้อ','ราคา','จำนวน','รวม');
//Data loading
$idor=$_GET[id];
//*** Load MySQL Data ***//
$conn=new Bookshop;
$conn->Connect_DB();
$f='*';
$tb='bs_orders_detail,bs_book';
$w="bs_orders_detail.book_barcode=bs_book.book_barcode And order_id='$idor'";
$resultData=$conn->Where($f,$tb,$w);
//************************//
$sql=new Bookshop;
$sql->Connect_DB();
$pdf=new PDF('L','mm','A5');
$pdf->AddFont('THSarabun','','THSarabun.php');
$pdf->AddFont('THSarabun','b','THSarabunb.php');
$pdf->AddPage();
$pdf->SetLeftMargin(20);
$pdf->Ln(5);
$or=new Bookshop;
$or->Connect_DB();
$field='*';
$table='bs_orders,bs_customer';
$where='bs_orders.cus_id=bs_customer.cus_id And order_id='."'".$idor."'";
$result=$or->Where($field,$table,$where);
$pdf->SetFont('THSarabun','',14);
foreach($result as $ans){
$date=$or->Day($ans[order_date]);
$pdf->Cell( 0 ,0 ,'รหัสมาชิก : '.$ans[cus_id] , 0 , 1 , 'L' );
$pdf->Cell( 170 , 0 ,'เลขที่ใบสั่งซื้อ : '.$idor , 0 , 1 , 'R' );
$pdf->Ln(8);
$pdf->Cell( 170 ,0 ,'วันที่สั่งซื้อ : '.$date , 0 , 1 , 'R' );
$pdf->Cell( 0 ,0 ,'ชื่อ-สกุล : '.$ans[cus_fullname] , 0 , 1 , 'L' );
$pdf->Ln(8);
$pdf->Cell( 0 ,0 ,'ชื่อที่จัดส่ง : '.$ans[cuss_name] , 0 , 1 , 'L' );
$pdf->Ln(8);
$pdf->Cell( 0 ,0 ,'ที่อยู่ที่จัดส่ง : '.$ans[cuss_address] , 0 , 1 , 'L' );
}
$pdf->Ln(8);
// Call to function BasicTable and send Heatdertitle,Resultdata
$pdf->BasicTable($header,$resultData);
$pdf->SetLeftMargin(20);
//Output as file PDF.
$pdf->Output('Purchase.pdf','I');
?>
|
|
|
|
|
Date :
2012-07-26 02:39:08 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วถ้าอยากให้ฟังก์ชั่นของ pdf ดึงทั้งไฟล์มาทำเป็น pdf โดยไม่ต้อง add ทีละบรรทัดจะได้รึป่าวครับ
|
|
|
|
|
Date :
2012-07-26 10:57:29 |
By :
davilllll |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<html>
<head>
<title> PHP PDF</title>
</head>
<body>
<?php
require('fpdf.php');
//include("../car/FPDF/ThaiPDF.class.php");
//include("../car/FPDF/fpdf.php");
class PDF extends FPDF
{
//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)
{
//Header
$w=array(30,30,55,25,20,20);
//Header
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C');
$this->Ln();
//Data
foreach ($data as $eachResult)
{
$this->Cell(30,6,$eachResult["type_id"],1);
$this->Cell(30,6,$eachResult["type_name"],1);
/*$this->Cell(55,6,$eachResult["Email"],1);
$this->Cell(25,6,$eachResult["CountryCode"],1,0,'C');
$this->Cell(20,6,$eachResult["Budget"],1);
$this->Cell(20,6,$eachResult["Budget"],1); */
$this->Ln();
}
}
//Better table
function ImprovedTable($header,$data)
{
//Column widths
$w=array(20,30,55,25,25,25);
//Header
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C');
$this->Ln();
//Data
foreach ($data as $eachResult)
{
$this->Cell(20,6,$eachResult["type_id"],1);
$this->Cell(30,6,$eachResult["type_name"],1);
/*$this->Cell(55,6,$eachResult["Email"],1);
$this->Cell(25,6,$eachResult["CountryCode"],1,0,'C');
$this->Cell(25,6,number_format($eachResult["Budget"],2),1,0,'R');
$this->Cell(25,6,number_format($eachResult["Budget"],2),1,0,'R'); */
$this->Ln();
}
//Closure line
$this->Cell(array_sum($w),0,'','T');
}
//Colored table
function FancyTable($header,$data)
{
//Colors, line width and bold font
$this->SetFillColor(255,0,0);
$this->SetTextColor(255);
$this->SetDrawColor(128,0,0);
$this->SetLineWidth(.3);
$this->SetFont('','B');
//Header
$w=array(20,30,55,25,25,25);
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C',true);
$this->Ln();
//Color and font restoration
$this->SetFillColor(224,235,255);
$this->SetTextColor(0);
$this->SetFont('');
//Data
$fill=false;
foreach($data as $row)
{
$this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
$this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
$this->Cell($w[2],6,$row[2],'LR',0,'L',$fill);
$this->Cell($w[3],6,$row[3],'LR',0,'C',$fill);
$this->Cell($w[4],6,number_format($row[4]),'LR',0,'R',$fill);
$this->Cell($w[5],6,number_format($row[5]),'LR',0,'R',$fill);
$this->Ln();
$fill=!$fill;
}
$this->Cell(array_sum($w),0,'','T');
}
}
$pdf=new PDF();
//Column titles
$header=array('type_id','type_name');
//Data loading
//*** Load MySQL Data ***//
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("car");
$strSQL = "SELECT * FROM car_type";
$objQuery = mysql_query($strSQL);
$resultData = array();
//for ($i=0;$i<mysql_num_rows($objQuery);$i++) {
$result = mysql_fetch_assoc($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);
//*** Table 2 ***//
$pdf->AddPage();
//$pdf->Image('logo.png',80,8,33);
$pdf->Ln(35);
$pdf->ImprovedTable($header,$resultData);
//*** Table 3 ***//
$pdf->AddPage();
//$pdf->Image('logo.png',80,8,33);
$pdf->Ln(35);
$pdf->FancyTable($header,$resultData);
$pdf->Output("MyPDF1.pdf");
?>
</body>
</html>
โค้ดนี้แต่เวลาออก pdf มันเป้นแบบตาราง ถ้าไม่อยากให้เป้นตารางอาร์เรย์ ต้องการให้เป็นแบบ ต่อบรรทัด แล้วกำหนดจุดได้เอง เพื่อนำไปพิมพ์บนแบบที่มีอยู่
ประมาณนี้ค่ะ
|
|
|
|
|
Date :
2012-07-26 15:21:26 |
By :
tukkatee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หน้าจอคอมผมนี่หว่าภาพข้างบนเนี่ยยย
|
|
|
|
|
Date :
2012-07-26 19:28:08 |
By :
birdkak |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอเป็นแนวร่วมค่ะ จะใช้ประมาณนี้เหมือนกันค่ะ
|
|
|
|
|
Date :
2012-07-27 09:27:38 |
By :
tukkatee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดู แต่ละฟิลด์ค่า 3 ตัวท้ายคั่นด้วย , เช่น
$pdf->Cell(50,6,'อำเภอ/เขต : ',0,0,'R');
// เลข 50 คือ จุดเริ่มต้นของข้อความที่เราจะว่าง
6 คือ ระยะห่างระหว่างบรรทัด หรือ ความกว้างตาราง
ค่า 0 ตัวแรกคือ ไม่สร้างกรอบ ถ้าค่าเป็น 1 คือมีกรอบ
ค่า 0 คัวที่สองคือ ให้ตารางต่อไปมาต่อได้เลย หรือ ง่าย ๆ ไม่ต้องขึ้นบรรทัดใหม่ แต่ถ้าค่าเป็น 1 ตารางจะมาต่อไม่ได้ ต้องขึ้นบรรทัดใหม่
ตัวอักษร R คือ จัดชิดขวา มีอีก 2 ค่าคือ C จัดกึ่งกลาง L จัดชิดซ้าย
>>> ของจริง http://www.edu.buu.ac.th/nbt2/student/print.php?id=1
print.php
<?
//include 'connect.php';
$id=1 ;
session_start();
require_once('config/connect.php');
mysql_connect($host,$user,$pw) or die("ติดต่อ HOST ไม่ได้");
mysql_select_db($dbname) or die("ไม่สามารถติดต่อฐานข้อมูลได้");
mysql_query("SET character_set_results=tis620");
mysql_query("SET character_set_client='tis620'");
mysql_query("SET character_set_connection='tis620'");
mysql_query("collation_connection = tis620_thai_ci");
mysql_query("collation_database = tis620_thai_ci");
mysql_query("collation_server = tis620_thai_ci");
require('thaipdfclass.php');
$pdf=new ThaiPDF();
$pdf->SetThaiFont();
$pdf->AddPage();
$strSQL = "SELECT * FROM tb_detail where id_d = $id ";
$objQuery=mysql_db_query($dbname,$strSQL);
$num=mysql_num_rows($objQuery);
$objResult = mysql_fetch_array($objQuery);
$strSQL1 = "SELECT * FROM tb_student where id = $id ";
$objQuery1=mysql_db_query($dbname,$strSQL1);
$num1=mysql_num_rows($objQuery1);
$objResult1 = mysql_fetch_array($objQuery1);
$strSQL2 = "SELECT * FROM tb_contract where id_c = $id ";
$objQuery2=mysql_db_query($dbname,$strSQL2);
$num2=mysql_num_rows($objQuery2);
$objResult2 = mysql_fetch_array($objQuery2);
$strSQL3 = "SELECT * FROM tb_order where id_o = $id ";
$objQuery3=mysql_db_query($dbname,$strSQL3);
$num3=mysql_num_rows($objQuery3);
$objResult3 = mysql_fetch_array($objQuery3);
$pdf->SetFont('CordiaNew','',10);
$pdf->SetTextColor(0,0,0);
$pdf->Image('logo.jpg',90,8,30,30);
$pdf->SetFont('CordiaNew','B',20);
$pdf->SetTextColor(0,0,0);
$pdf->Ln(30);
$pdf->Cell(0,7,'แบบฟอร์มลงทะเบียนโครงการปัจฉิมนิเทศนิสิต/นักศึกษาทุนครูพันธุ์ใหม่ รุ่น 2553',0,1,'C');
$pdf->Ln(3);
if($objResult[picName]==""){$objResult[picName] = "2012.jpg"; }else{ }
$pdf->Image('myfile/'.$objResult[picName],165,53,29,34);
$pdf->Ln(2);
$pdf->SetFont('CordiaNew','B',16);
$pdf->SetTextColor(0,0,0);
$pdf->Cell(50,35,'',0,0,'R');
$pdf->Cell(140,35,' '.$objResult1[titleName].$objResult1[firstName].' '. $objResult1[lastName],0,1,'C'); //ชื่อ
$pdf->SetFont('CordiaNew','B',14);
$pdf->SetTextColor(0,0,0);
$pdf->Cell(50,6,'สาขาวิชา : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult1[major],0,1,'L');
$pdf->Cell(50,6,' คณะ : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult1[faculty],0,1,'L');
$pdf->Cell(50,6,'สถาบัน : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult1[institute],0,1,'L');
$pdf->Cell(50,6,'ได้รับการบรรจุที่ : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult1[locate],0,1,'L');
$pdf->Cell(50,2,'',0,0,'R');
$pdf->Cell(140,2,'',0,1,'L');
$pdf->Cell(50,6,'ตำบล/แขวง : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult2[District],0,1,'L');
$pdf->Cell(50,6,'อำเภอ/เขต : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult2[Amphur],0,1,'L');
$pdf->Cell(50,6,'จังหวัด : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult2[Province],0,1,'L');
$pdf->Cell(50,6,'รหัสไปรษณีย์ : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult2[Postcode],0,1,'L');
$pdf->Cell(50,2,'',0,0,'R');
$pdf->Cell(140,2,'',0,1,'L');
$pdf->Cell(50,6,'ชื่อเล่น : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult[nickName],0,1,'L');
$pdf->Cell(50,6,'เชื้อชาติ : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult[extraction],0,1,'L');
$pdf->Cell(50,6,'สัญชาติ : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult[nationality],0,1,'L');
$pdf->Cell(50,6,'ศาสนา : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult[religion],0,1,'L');
$pdf->Cell(50,2,'',0,0,'R');
$pdf->Cell(140,2,'',0,1,'L');
$pdf->Cell(50,6,'การรับประทานอาหาร : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult3[eating],0,1,'L');
$pdf->Cell(50,6,'กรุ๊ปเลือด : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult3[bloodType],0,1,'L');
$pdf->Cell(50,6,' โรคประจำตัว(ถ้ามี) : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult3[disease],0,1,'L');
$pdf->Cell(50,6,'ขนาดเสื้อ : ',0,0,'R');
$pdf->Cell(140,6,' '.$objResult3[size],0,1,'L');
$pdf->Cell(50,2,'',0,0,'R');
$pdf->Cell(140,2,'',0,1,'L');
$pdf->Cell(50,2,'',0,0,'R');
$pdf->Cell(140,2,'',0,1,'L');
$pdf->Ln(5);
$pdf->SetFont('CordiaNew','',16);
$pdf->SetTextColor(0,0,0);
$pdf->Cell(0,8,' ลงชื่อ.............................................................ผู้เข้าร่วมโครงการ',0,1,'L');
$pdf->Cell(0,8,' (.............................................................)',0,1);
$pdf->Cell(0,8,' วันที่........... เดือน.................................... พ.ศ...............',0,1);
$pdf->Output();
session_destroy();
?> <STRONG>Code (PHP)</STRONG>
ลองเอาไปประยุกต์ดูนะ
|
ประวัติการแก้ไข 2012-07-27 10:46:45
|
|
|
|
Date :
2012-07-27 10:45:28 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณน่ะค่ะ จะพยายามดูค่ะ
|
|
|
|
|
Date :
2012-07-27 11:27:21 |
By :
tukkatee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parse error: parse error, unexpected T_VARIABLE in C:\AppServ\www\car\test7.php on line 138
ขึ้น error แบบนี้ ค่ะ เหมือนไม่รูจัก $pdf หรือเปล่าค่ะ
รบกวนอีกนิดน่ะค่ะ พอดีว่า พวกไฟล์ fpdp.php และ class ต่างของดิฉันมันมั่วไปหมดแล้วรบกวนขอด้วยได้มั้ยค่ะ
ขอบคุณมากๆๆค่ะ
|
|
|
|
|
Date :
2012-07-27 12:47:04 |
By :
tukkatee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|