|
|
|
ต้องการจัด layout แบบนี้ทำอย่างไรมีใครเคยทำ หรือพอจะแนะแนวทางได้บ้างครับ ปริ้นผ่าน MPDF |
|
|
|
|
|
|
|
ผมใช้ MPDF ในการจัดเอกสารออกมาครับ
|
|
|
|
|
Date :
2019-01-29 15:40:43 |
By :
simson_palo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MPDF ตรงช่วง HTML Conent ให้ใช้
Code (PHP)
$dataHTML = '';
for($i=0;$i<5;$i++) {
$dataHTML .= ' CODE FORM 1 ช่อง';
}
$mpdf->WriteHTML($dataHTML);
ประมาณนี้ครับ
|
|
|
|
|
Date :
2019-01-30 08:16:35 |
By :
ilikeit |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
foreach ($result as $r) {
if ($r->subject == 'Annual') {
$sbj = 'การประชุมผู้ถือหุ้นสามัญ';
}elseif ($r->subject == 'Extraordinary') {
$sbj = 'การประชุมผู้ถือหุ้นวิสามัญ';
}else{ $sbj = $r->subject;}
// if($i%2==0){
$html = '<div style="$i%2float: left; width: 50%;font-size: 8px; margin-top:10pt;margin-bottom: 10pt; ">';
// }else{
// $html = '<div style="float: right; width: 50%;font-size: 8px; margin-top:10pt;margin-bottom: 10pt; ">';
// }
$html .= '<div stlye="float:right;"><label >เลขประจำตัว :'.$r->id_no.'</label></div>';
$html .='<h5 style="text-align: center;">บัตรลงคะแนน</h5>';
$html .='<h5 style="text-align: center;">'.$sbj.'ประจำปี'.$r->year.'</h5>';
$html .='<h5 style="text-align: center;"></h5>';
$html .='<h5 style="text-align: center;">วันที่'.$r->date.'</h5>';
$html .='<h5 style="text-align: center;">ณ '.$r->place.'</h5>';
$html .= '<label >ชื่อผู้ถือหุ้น : '.$r->name.'</label><br>';
$html .= '<label>จำนวนหุ้น : </label>'.number_format($r->s_holder,2).' หุ้น<br>';
$html .= '<label>วาระที่ :'.$r->no_ag.' '.$r->agenda.' </label><br>';
if($r->detail_ag !=''){
$html .= '<label>วาระที่ :'.$r->no_sub_ag.' '.$r->detail_ag.' </label><br>';
}
$html .='<div style="margin-left:90px;">';
if($r->condition =='none'){
$html .= '<input type="checkbox" >ไม่มีการลงมติในวาระนี้<br>';
}else{
$html .= '<input type="checkbox" >อนุมัติ/รับรอง<br>';
$html .= '<input type="checkbox" >ไม่อนุมัติ/ไม่รับรอง<br>';
$html .= '<input type="checkbox" >งดออกเสียง';
}
$html .= '</div>';
$html .= '<div style="margin-left:140px;"><label >ลงลายมือชื่อ : …………………………………… : </label></div><br>';
$html .= '</div>';
$this->mpdf->debug = true;
// echo $html;
// $pdf->Add_Label($text);
$this->mpdf->WriteHTML($html);
// $i++;
}
$this->mpdf->Output();
ตอนนี้ผมใช้แบบนี้อยู่ครับ พอ echo ดูในเป็น html มันได้ แต่พอ output ออกมาเป็น pdf แล้วมันชิดซ้ายหมดเลยครับ
|
ประวัติการแก้ไข 2019-01-30 22:43:49
|
|
|
|
Date :
2019-01-30 22:43:26 |
By :
simson_palo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนหลังผมไปถูกใจ tcpdf ในโหมดของ EOD
หลักการคือใส่ทุกอย่าง ตั้งแต่ html css php ให้อยู่ใน EOD
เวลามัน gen เป็น pdf มันตอบโจทย์มากจริง ๆ
ตย.อาจจะยาวหน่อย อันนี้เขียนใน CI
เสียดายตัวงานจริง HDD server พังเลย พังพินาศ ฐานข้อมูลเกลี้ยง T^T
$this->load->library('Tcpdfx');
class MYPDF extends TCPDF {
public $datafromdb;//<-- to save your data
function __construct( $datafromdb , $orientation, $unit, $format )
{
parent::__construct( $orientation, $unit, $format, true, 'UTF-8', false);
// echo $datafromdb;
// print_r($datafromdb);
// echo "<hr>";
$this->datafromdb = $datafromdb->teacherName;
//...
}
public function Header() {
// print_r($datafromdb);
// $image_file = 'http://council.buu.ac.th/image/LogoBuuThai.jpg';
$image_file = K_PATH_IMAGES.'buu.png';
$this->Image($image_file, 'C', 5, 25, '', 'PNG', false, 'C', false, 300, 'C', false, false, 0, false, false, false);
$this->SetFont('thsarabun', 'B', 18);
$this->Ln(33);
$this->Cell(0, 10, 'รายชื่อนิสิตที่ '.$this->datafromdb.' เป็นอาจารย์ที่ปรึกษาหลักควบคุมวิทยานิพันธ์', 0, false, 'C', 0, '', 0, false, 'M', 'M');
}
}
$pdf = new MYPDF($get_teacher_name,PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true,
'UTF-8', false);
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetMargins(15, 45, 10, true);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->SetFont('thsarabun', '', 14, '', true);
$pdf->AddPage('L', 'A4');
$tbl = <<<EOD
<style>
td{
border:1px solid #CCC;
}
</style>
<table cellspacing="0" cellpadding="1" border="0" style="width:950px;">
<thead>
<tr>
<td align="center" bgcolor="#F2F2F2" width="30">#</td>
<td align="center" bgcolor="#F2F2F2" width="180">ชื่อ-นามสกุล</td>
<td align="center" bgcolor="#F2F2F2" width="370">ภาษาไทย</td>
<td align="center" bgcolor="#F2F2F2" width="370">ภาษาอังกฤษ</td>
</tr>
</thead>
<tbody>
EOD;
foreach ($get_store as $key => $value) {
$num = $key+1;
$name = $value->arrTitle[0]->titleName.$value->arrNisitName[0]->nisitName;
if (empty($value->arrThesisName)) {
$thai = '-';
$eng = '-';
}else{
$thai = $value->arrThesisName[0]->thesisNameThai;
$eng = $value->arrThesisName[0]->thesisNameEng;
}
$tbl .= <<<EOD
<tr>
<td align="center" width="30">$num</td>
<td align="left" width="180"> $name</td>
<td align="left" width="370"> $thai</td>
<td align="left" width="370"> $eng</td>
</tr>
EOD;
if($num==6){
$tbl .= <<<EOD
</tbody></table>
EOD;
$pdf->writeHTML($tbl, true, false, false, false, '');
$pdf->lastPage();
$pdf->AddPage('L', 'A4');
$tbl = <<<EOD
<style>
td{
border:1px solid #CCC;
}
</style>
EOD;
$tbl .= <<<EOD
<table cellspacing="0" cellpadding="1" border="1" style="width:950px;">
<thead>
<tr>
<td align="center" bgcolor="#F2F2F2" width="30">#</td>
<td align="center" bgcolor="#F2F2F2" width="180">ชื่อ-นามสกุล</td>
<td align="center" bgcolor="#F2F2F2" width="370">ภาษาไทย</td>
<td align="center" bgcolor="#F2F2F2" width="370">ภาษาอังกฤษ</td>
</tr>
</thead>
<tbody>
EOD;
}
//
}
$tbl .= <<<EOD
</tbody></table>
EOD;
$pdf->writeHTML($tbl, true, false, false, false, '');
$pdf->Output('example_001.pdf', 'I');
|
|
|
|
|
Date :
2019-01-31 08:25:42 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|