ขอสอบถามเรื่อง css ในการใช้จัดหน้ากระดาษ A4 หน่อยครับ
การ Print ผ่านเว็บ จะต้องใช้พวก Tools Report เข้ามาช่วยครับ แต่ใน Web ทั่ว ๆ ไปจะนิยมใช้พวก PDF ครับ
Date :
2014-09-03 09:55:14
By :
mr.win
แล้ว pdf นี่จะใช้โค้ด css ในการจัดหน้า a4 ได้ไหมครับ รบกวนช่วยผมด้วยครับ
Date :
2014-09-03 10:01:13
By :
chaolea
pdf มันจะมีคำสั่งกำหนดขนาดกระดาษให้เลยครับ ไม่ต้องใช้ css ในการกำหนดขนาดหน้า
Date :
2014-09-03 10:05:51
By :
mr.v
ผมก็ใช้การกำหนดหน้าเรียบร้อยแล้วครับ แต่ในตารางที่จะใช้แสดงข้อมูลอ่ะครับ คือผมอยากจะได้ตาราง fix ให้คงที่
ภาพนี้เป็นหน้าที่ผมใช้ทำ pdf อ่ะครับ
ผมได้กำหนด header และก็ footer แล้ว แต่ในตารางถ้าใส่ข้อมูลน้อยมันก็จะเป็นแบบข้างบนอ่ะครับ แต่ถ้าผมลองใส่ข้อมูลไปเยอะๆ มันก็จะล้นมาทับกับ footer ที่ผมกำหนดไว้ครับ ผมเลยอยากจะรูว่ามีวิธี fix ให้คงที่หรือเปล่า
Date :
2014-09-03 10:37:35
By :
chaolea
เนี่ยครับถ้าผมกรอกข้อมูลน้อยไปตารางมันจะเป็นแบบนี้ครับ
แต่ถ้าผมกรอกข้อมูลเยอะๆมันเป็นแบบนี้อ่ะครับ
ใครพอเป็น css บ้างครับ ช่วยดูให้ผมหน่อยนะครับ
และถ้าผมอยากให้มันขึ้นหน้าใหม่ถ้ามันเกินลงมาทับกันต้องทำไงครับ
ขอบคุณครับ
Date :
2014-09-03 13:47:24
By :
chaolea
ประมาณนี้ป่าว ลองดูแล้วกันนะ ถูๆไถ ไปก่อน
สมมุติว่า
ต้องการให้หน้านึงมี 12 บรรทัด
ความสูงของบรรทัด 7
$num มาจาก mysql_num_rows
ความสูงทั้งหมดก็คือ 12 * 7 = 84
$height = 84; // ความสูงทั้งหมด 12 * 7
$term = 7; // ความสูงต่อบรรทัด
$row = $height - ($term * $num);
Code (PHP)
<?PHP
define('FPDF_FONTPATH','font/');
require('fpdf.php');
include "../config/connect.php";
include "../function/function.php";
class PDF extends FPDF
{
function LoadData($file)
{
$lines = file($file);
$data = array();
foreach($lines as $line)
$data[]=explode(';',chop($line));
return $data;
}
function Header()
{
$this->AddFont('THSarabun','B','THSarabunb.php');
$this->SetFont('THSarabun','B',18);
$this->Image("../images/logo.jpg",10,9,30,0,'JPG');
$this->Cell(190,11,iconv('UTF-8', 'TIS-620', "คณะวิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ"),0,0,'C');
$this->Ln(8);
$this->Cell(190,11,iconv('UTF-8', 'TIS-620', "มหาวิทยาลัยราชภัฏรำไพพรรณี"),0,0,'C');
$this->Ln(8);
$this->Cell(190,11,iconv('UTF-8', 'TIS-620', "รายชื่อนักศึกษาฝึกประสบการณ์วิชาชีพ"),0,0,'C');
$this->Ln(8);
$this->Cell(190,11,'','B');// เส้น
$this->Ln(17);
// หัวตาราง
$this->SetFillColor(205,201,201);
$this->Cell(20,7, iconv('UTF-8', 'TIS-620', "#"),1,0,'C',true);
$this->Cell(80,7, iconv('UTF-8', 'TIS-620', "รหัสประจำตัว"),1,0,'C',true);
$this->Cell(90,7, iconv('UTF-8', 'TIS-620', "ชื่อ - นามสกุล"),1,0,'C',true);
$this->Ln();
}
}
$pdf = new PDF();
$pdf->AddPage();
$pdf->AddFont('THSarabun','','THSarabun.php');
$pdf->SetFont('THSarabun','',16);
$i = 1;
$sql = "SELECT * FROM favor";
$sql .= " LEFT JOIN student ON favor.stu_id = student.stu_id";
$sql .= " LEFT JOIN duration ON favor.dur_id = duration.dur_id";
$sql .= " WHERE dur_sector = '0'";
$sql .= " ORDER BY student.number ASC";
$query = mysql_query($sql);
$num = mysql_num_rows($query);
while($show = mysql_fetch_array($query)){
$pdf->Cell(20,7, iconv('UTF-8', 'TIS-620',$i++),'LR',0,'C');
$pdf->Cell(80,7, iconv('UTF-8', 'TIS-620',$show['number']),'LR',0,'C');
$pdf->Cell(90,7, iconv('UTF-8', 'TIS-620',$show['stu_thname']),'LR');
$pdf->Ln();
}
$height = 84; // ความสูงทั้งหมด 12 * 7
$term = 7; // ระหว่างบรรทัด
$row = $height - ($term * $num);
$pdf->Cell(20,$row, '','LR');
$pdf->Cell(80,$row, '','LR');
$pdf->Cell(90,$row, '','LR');
$pdf->Ln();
$pdf->Cell(190,7,iconv('UTF-8', 'TIS-620',' * หมายเหต'),1);
$pdf->Output("Student.pdf", 'I');
?>
ประวัติการแก้ไข 2014-09-03 14:45:14 2014-09-03 14:45:15 2014-09-03 14:53:42
Date :
2014-09-03 14:38:47
By :
sabaitip
ครับ ขอบคุณมากครับ
Date :
2014-09-04 10:00:53
By :
chaolea
ตอบความคิดเห็นที่ : 8 เขียนโดย : sabaitip เมื่อวันที่ 2014-09-04 09:56:18
รายละเอียดของการตอบ ::
ผมลองเปลี่ยนแล้วครับ แล้วผมก็ fix ตาราง ได้แล้ว แต่พอใส่ข้อมูลตารางมันก็เลยมาเหมือนเดิมอ่ะครับ
ผมคิดว่ามันน่าจะติดตรงตัวแประอ่ะครับ ตรงที่ออกข้อมูลตารางเลย ผมคิดว่าน่าจะติดตรงนี้ที่เดียว
อันนี้เป็นโค้ดที่คุณให้มา
Code (PHP)
$i = 1;
$sql = "SELECT * FROM favor";
$sql .= " LEFT JOIN student ON favor.stu_id = student.stu_id";
$sql .= " LEFT JOIN duration ON favor.dur_id = duration.dur_id";
$sql .= " WHERE dur_sector = '0'";
$sql .= " ORDER BY student.number ASC";
$query = mysql_query($sql);
$num = mysql_num_rows($query);
while($show = mysql_fetch_array($query)){
$pdf->Cell(20,7, iconv('UTF-8', 'TIS-620',$i++),'LR',0,'C');
$pdf->Cell(80,7, iconv('UTF-8', 'TIS-620',$show['number']),'LR',0,'C');
$pdf->Cell(90,7, iconv('UTF-8', 'TIS-620',$show['stu_thname']),'LR');
$pdf->Ln();
}
แต่อันนี้เป็นโค้ดของผมครับ
Code (PHP)
for($i=0;$i<count($id);$i++){
$ex_id=explode(":",$id[$i]);
$select=mysql_query("SELECT * FROM exstock WHERE id='".$ex_id[0]."'") or die (mysql_error());
$row=mysql_fetch_array($select);
$pdf->Cell(15,7,++$n,'LR',0,'C');
$pdf->Cell(30,7,$row['product_id'],'LR',0,'C');
$pdf->Cell(90,7,$row['product_des'],'LR',0,'C');
$pdf->Cell(15,7,$row['quantity'],'LR',0,'C');
$pdf->Cell(40,7,$row['serial'],'LR',0,'C');
$pdf->Ln();
}
คุณพอมีวิธีไหมครับ
Code นี่เป็นโค้ดของผมครับ
Code (PHP)
<?
include_once"connect.php";
$id=$_POST['id'];
$explode=explode(":",$id[0]);
$ex_id=$explode[0];
$ex_cus=$explode[1];
$customer=$_POST['customer'];
$sql_number=mysql_query("SELECT * FROM customer_info where cust_name like '".$ex_cus."' ");
$rs_number=mysql_fetch_array($sql_number);
?>
<?PHP
define('FPDF_FONTPATH','font/');
require('fpdf.php');
include "connect.php";
class PDF extends FPDF
{
function LoadData($file)
{
$lines = file($file);
$data = array();
foreach($lines as $line)
$data[]=explode(';',chop($line));
return $data;
}
function Header()
{
$this->AddFont('angsana','','angsa.php');
$this->SetFont( 'angsana', '', 14 );
$this->Image('images/logo.jpg',10,10,0,15,'jpg','');
$this->Cell(50,5,'',0,0,'C',0);//จัดอยู่กึ่งกลาง
$this->Cell(75 ,10, iconv( 'UTF-8','cp874' ,'ใบส่งสินค้าซ่อม / Repair Note'),1,1,'C' );
$this->ln( 5 );
}
function Footer()
{
//move pionter at the bottom of the page
$this->SetY( -70 );
//set font to Arial, Bold, size 10
$this->AddFont('angsana','','angsa.php');
$this->SetFont( 'angsana', '', 14 );
$this->Ln();
$this->Cell(20,5,'',0,0,'C',0);//จัดอยู่กึ่งกลาง
$this->Cell(0 , 8, iconv( 'UTF-8','cp874' ,'ผู้ส่งสินค้า / Delivered By ผู้รับสินค้า(ลงชื่อตัวบรรจง)'),0,1,'L' );
$this->Ln();
$this->Cell(20,5,'',0,0,'C',0);//จัดอยู่กึ่งกลา
$this->Cell(0 , 1, iconv( 'UTF-8','cp874' ,' Received by'),0,1,'L' );
$this->Ln();
$this->Cell(15,5,'',0,0,'C',0);//จัดอยู่กึ่งกลาง
$this->Cell(0,8,'.................................................... ........................................................',0,1,'L',0);
$this->Cell(14,5,'',0,0,'C',0);//จัดอยู่กึ่งกลาง
$this->Cell(0,8,'(....................................................) (........................................................)',0,1,'L',0);
$this->Cell(14,5,'',0,0,'C',0);//จัดอยู่กึ่งกลาง
$this->Cell(0,8,' .........../............./.............. ........../............./............',0,1,'L',0);
}
}
$pdf = new PDF();
$pdf->AddPage();
$pdf->AddFont('angsana','','angsa.php');
$pdf->Cell(35 , 8, iconv( 'UTF-8','cp874' ,'บริษัท / Company'),0,0,'U' );
$pdf->Cell(106 , 8, iconv( 'UTF-8','cp874',$rs_number['cust_name']),0,0,'U' );
$pdf->Cell(15 , 8, iconv( 'UTF-8','cp874' ,'NO'),0,0,'U' );
$pdf->Cell(34 , 8, iconv( 'UTF-8','cp874' ,$rs_number['cust_id']),0,1,'U' );
$pdf->Cell(35 , 8, iconv( 'UTF-8','cp874' ,'ที่อยู่ / Address'),0,0,'L' );
$pdf->Cell(155 , 8, iconv( 'UTF-8','cp874' ,$rs_number['cust_add']),0,1,'L' );
$pdf->Cell(35 , 8, iconv( 'UTF-8','cp874' ,'โทร. / Tel.'),0,0,'L' );
$pdf->Cell(106 , 8, iconv( 'UTF-8','cp874' ,$rs_number['cust_phone']),0,0,'L' );
$pdf->Cell(15 , 8, iconv( 'UTF-8','cp874' ,'Date:'),0,0,'L' );
$pdf->Cell(34 , 8, iconv( 'UTF-8','cp874' ,date("d/m/Y")),0,1,'L' );
$pdf->Cell(35 , 8, iconv( 'UTF-8','cp874' ,'ผู้สั่งซ่อม'),0,0,'L' );
$pdf->Cell(15 , 8, iconv( 'UTF-8','cp874' ,$rs_number['name']),0,0,'L' );
$pdf->Cell(10 , 8, iconv( 'UTF-8','cp874' ,'โทร.'),0,0,'L' );
$pdf->Cell(34 , 8, iconv( 'UTF-8','cp874' ,$rs_number['cust_phone2']),0,0,'L' );
$pdf->Cell(15 , 8, iconv( 'UTF-8','cp874' ,'Email:'),0,0,'L' );
$pdf->Cell(34 , 8, iconv( 'UTF-8','cp874' ,$rs_number['cust_mail']),0,1,'L' );
$pdf->Cell(50,5,'',0,1,'C',0);//เว้นบรรทัด
$pdf->SetFillColor(205,201,201);
$pdf->Cell(15,15,iconv( 'UTF-8','cp874' ,'รายการ'),1,0,'C',true);
$pdf->Cell(30,15,iconv( 'UTF-8','cp874' ,'รหัสสินค้า'),1,0,'C',true);
$pdf->Cell(90,15,iconv( 'UTF-8','cp874' ,'รายละเอียดสินค้า'),1,0,'C',true);
$pdf->Cell(15,15,iconv( 'UTF-8','cp874' ,'จำนวน'),1,0,'C',true);
$pdf->Cell(40,15,iconv( 'UTF-8','cp874' ,'หมายเลขเครื่อง'),1,1,'C',true);
for($i=0;$i<count($id);$i++){
$ex_id=explode(":",$id[$i]);
$select=mysql_query("SELECT * FROM exstock WHERE id='".$ex_id[0]."'") or die (mysql_error());
$row=mysql_fetch_array($select);
$pdf->Cell(15,7,++$n,'LR',0,'C');
$pdf->Cell(30,7,$row['product_id'],'LR',0,'C');
$pdf->Cell(90,7,$row['product_des'],'LR',0,'C');
$pdf->Cell(15,7,$row['quantity'],'LR',0,'C');
$pdf->Cell(40,7,$row['serial'],'LR',0,'C');
$pdf->Ln();
}
$height = 108; // ความสูงทั้งหมด 12 * 7
$term = 7; // ระหว่างบรรทัด
$row = $height - ($term * $num);
$pdf->Cell(15,$row, '','LR');
$pdf->Cell(30,$row, '','LR');
$pdf->Cell(90,$row, '','LR');
$pdf->Cell(15,$row, '','LR');
$pdf->Cell(40,$row, '','LR');
$pdf->Ln();
$pdf->Cell(65,11,iconv( 'UTF-8','cp874' ,'หมายเหตุ / Note : อาการเสีย:-'),'LT',0,'L',0);
$pdf->Cell(125,11,iconv( 'UTF-8','cp874' ,$row['note']),'TR',1,'L',0);
$pdf->Cell(65,11,iconv( 'UTF-8','cp874' ,' project:'),'LB',0,'L',0);
$pdf->Cell(125,11,iconv( 'UTF-8','cp874' ,$row['project']),'BR',1,'L',0);
$pdf->Output("test.pdf", 'I');
?>
$this->Ln(8);
$this->Cell(190,11,'','B');// เส้น
$this->Ln(17);
// หัวตาราง
$this->SetFillColor(205,201,201);
$this->Cell(15,11,iconv( 'UTF-8','cp874' ,'รายการ'),1,0,'C',true);
$this->Cell(30,11,iconv( 'UTF-8','cp874' ,'รหัสสินค้า'),1,0,'C',true);
$this->Cell(90,11,iconv( 'UTF-8','cp874' ,'รายละเอียดสินค้า'),1,0,'C',true);
$this->Cell(15,11,iconv( 'UTF-8','cp874' ,'จำนวน'),1,0,'C',true);
$this->Cell(40,11,iconv( 'UTF-8','cp874' ,'หมายเลขเครื่อง'),1,0,'C',true);
$this->Ln();
Date :
2014-09-04 11:14:38
By :
chaolea
ใน Code คุณ ผมไม่เห็นตัวนี้เลย ใช้หาว่ามีข้อมูลอยู่กี่ Record
Code (PHP)
$num = mysql_num_rows($query);
ลองตามนี้ดูก่อน
Code (PHP)
for($i=0;$i<count($id);$i++){
$ex_id=explode(":",$id[$i]);
$select=mysql_query("SELECT * FROM exstock WHERE id='".$ex_id[0]."'") or die (mysql_error());
$num = mysql_num_rows($select); // เพิ่มมา
$row=mysql_fetch_array($select);
$pdf->Cell(15,7,++$n,'LR',0,'C');
$pdf->Cell(30,7,$row['product_id'],'LR',0,'C');
$pdf->Cell(90,7,$row['product_des'],'LR',0,'C');
$pdf->Cell(15,7,$row['quantity'],'LR',0,'C');
$pdf->Cell(40,7,$row['serial'],'LR',0,'C');
$pdf->Ln();
}
ประวัติการแก้ไข 2014-09-04 11:25:08
Date :
2014-09-04 11:22:36
By :
sabaitip
ไอ้ข้อมูลที่มันแสดงอยู่ว่ามีกี่ record เนี่ย เป็นการเลือกแล้วส่งมา pdf ใช่ป่ะ
ถ้าเป็นงั้นก็เอาจำนวนที่เลือกมาอ่ะ ไปใช้แทน $num เลย ลองดู ไม่แน่ใจ
$row = $height - ($term * ? );
แนวคิดที่ว่า $row จะเท่ากับ ความสูงบรรทัด * จำนวนเรคคอด แล้วเอาไปลบ ความสูงทั้งหมด
ประวัติการแก้ไข 2014-09-04 12:02:00
Date :
2014-09-04 11:59:00
By :
sabaitip
ใช่ครับผม แต่ผมลองเปลี่ยนดูแล้วมันก็ไม่ได้นะครับ รบกวนหน่อยนะครับ คุณ sabaitip
ประวัติการแก้ไข 2014-09-04 16:46:09 2014-09-04 16:47:36
Date :
2014-09-04 14:04:33
By :
chaolea
ผมลองใส่แล้วก็ไม่ได้ครับ ถ้าใครรู้ช่วยหน่อยนะครับ
Date :
2014-09-04 16:49:11
By :
chaolea
เรื่องมั่วไว้ใจผม ฮ่าๆ
Code (PHP)
for($i=0;$i<count($id);$i++){
$ex_id=explode(":",$id[$i]);
$select=mysql_query("SELECT * FROM exstock WHERE id='".$ex_id[0]."'") or die (mysql_error());
$row=mysql_fetch_array($select);
$pdf->Cell(15,7,++$n,'LR',0,'C');
$pdf->Cell(30,7,$row['product_id'],'LR',0,'C');
$pdf->Cell(90,7,$row['product_des'],'LR',0,'C');
$pdf->Cell(15,7,$row['quantity'],'LR',0,'C');
$pdf->Cell(40,7,$row['serial'],'LR',0,'C');
$pdf->Ln();
}
$height = 108;
$term = 7;
$line = $height - ($term * $i);
$pdf->Cell(15,$line, '','LR');
$pdf->Cell(30,$line, '','LR');
$pdf->Cell(90,$line, '','LR');
$pdf->Cell(15,$line, '','LR');
$pdf->Cell(40,$line, '','LR');
$pdf->Ln();
Date :
2014-09-04 20:28:53
By :
sabaitip
แต่ถ้าผมกรอกข้อมูลไปเยอะๆ แล้วมันเกินอ่ะครับ
ถ้าผมอยากจะให้มันขึ้นหน้าใหม่ต้องทำไงหรอครับ
Date :
2014-09-08 11:50:13
By :
chaolea
Load balance : Server 01