สอบถามหน่อยครับ ออกรายงานด้วย mpdf ขึ้น แบบนี้แก้ยังไงครับผม
ผมลองทำตามกระทู้ที่ในนี้สอน ออกรายงานด้วย mpdf แล้วมันขึ้น ว่า
Fatal error: Switch statements may only contain one default clause in C:\xampp\htdocs\testphp\mpdf\mpdf.php on line 1432
ต้องแก้ไขยังไงครับ รบกวนได้โปรดช่วยผมหน่อยนะครับ
Code (PHP)
<?php
require 'connectdb.php';
require_once('mpdf/mpdf.php');
ob_start();
$q = "select * from tutor";
$result = mysqli_query($con, $q);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>แสดงชื่อติวเตอรื</title>
</head>
<body>
<center><font size="24"><?php echo "รายได้ของติวเตอร์"; ?></font><center>
<center><table border ="2 " style = "width:1000px">
<tr>
<th>รหัสติวเตอร์</th>
<th>ชื่อติวเตอร์</th>
<th>จบสูงสุด</th>
<th>ระดับที่สอน</th>
<th>สถานที่สอน</th>
<th>สอนวิชา</th>
<th>ชั่วโมงที่สอน</th>
</tr>
<?php
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
?>
<tr>
<td><center><?php echo $row['ID_t']."<br>";?></center></td>
<td><center><?php echo $row['Name_t']."<br>";?></center></td>
<td><center><?php echo $row['Info_t']."<br>";?></center></td>
<td><center><?php echo $row['Grade_t']."<br>";?></center></td>
<td><center><?php echo $row['Local_t']."<br>";?></center></td>
<td><center><?php echo $row['Main_t']."<br>";?></center></td>
<td><center><?php echo $row['Limit_t']."<br>";?></center></td>
</tr>
<?php }
mysqli_free_result($result);
mysqli_close($con);
?>
</body>
</html>
<?php
$html = ob_get_contents(); //เก็บค่า html ไว้ใน $html
ob_end_clean();
$pdf = new mPDF('th', 'A4-L', '0', ''); //การตั้งค่ากระดาษถ้าต้องการแนวตั้ง ก็ A4 เฉยๆครับ ถ้าต้องการแนวนอนเท่ากับ A4-L
$pdf->SetAutoFont();
$pdf->SetDisplayMode('fullpage');
$pdf->WriteHTML($html, 2);
$pdf->Output("MyPDF/MyPDF.pdf"); // เก็บไฟล์ html ที่แปลงแล้วไว้ใน MyPDF/MyPDF.pdf ถ้าต้องการให้แสด
?>
ดาวโหลดรายงานในรูปแบบ PDF <a href="MyPDF/MyPDF.pdf">คลิกที่นี้</a>
Tag : PHP, HTML, CSS, PDF, iReport, Crystal Report
Date :
2017-10-14 17:39:39
By :
coke0213
View :
5991
Reply :
9
update mpdf
Date :
2017-10-14 18:58:30
By :
mr.v
เปิดเอกสารของมันดูครับว่า SetAutoFont ต้องระบุอะไรบ้าง
Date :
2017-10-14 22:38:13
By :
mr.v
ไม่เคยใช้นะแต่จากที่อ่านที่ จขกท เขียน
Code (PHP)
$this->autoScriptToLang = false;
$pdf = new mPDF('th', 'A4-L', '0', ''); //การตั้งค่ากระดาษถ้าต้องการแนวตั้ง ก็ A4 เฉยๆครับ ถ้าต้องการแนวนอนเท่ากับ A4-
น่าจะเป็นแบบนี้หรือเปล่า
Code (PHP)
$pdf = new mPDF('th', 'A4-L', '0', ''); //การตั้งค่ากระดาษถ้าต้องการแนวตั้ง ก็ A4 เฉยๆครับ ถ้าต้องการแนวนอนเท่ากับ A4-
$pdf->autoScriptToLang = false;
Date :
2017-10-16 20:12:45
By :
Chaidhanan
ดู tag ปิด-เปิด ให้ดีก่อน
Date :
2017-10-16 21:56:56
By :
Chaidhanan
</table>
Date :
2017-10-17 05:39:12
By :
mr.v
พอดีเพิ่งเห็นกระทู้นี้จาก Google เนื่องจากว่าผมก็เพิ่งเจอปัญหาเหมือนกัน ตอนแรกใช้ PHP V.5.6 ไม่มีปัญหา แต่พอเปลี่ยนมาเป็น PHP V.7.x ก็ขึ้นแบบนี้ fatal error: switch statements may only contain one default clause
วิธีแก้ไข (เผื่อใครเจอปัญหาแบบเดียวกันนี้) ทำได้ง่าย ๆ ครับ
1. เปิดไฟล์ mpdf.php (อยู่ใน Folder หลักของ mpdf)
2. ค้นหา function _getPageFormat($format) ครงบรรทัด case 'A4' ให้ลบ default: ออก
3. Save ไฟล์ แล้ว Upload ขึ้นไปไว้บน Server - เรียกไฟล์ php ที่ใช้สร้าง .pdf ตามปกติ จะไม่มี Error แล้ว
function _getPageFormat($format) {
switch (strtoupper($format)) {
case '4A0': {$format = array(4767.87,6740.79); break;}
case '2A0': {$format = array(3370.39,4767.87); break;}
case 'A0': {$format = array(2383.94,3370.39); break;}
case 'A1': {$format = array(1683.78,2383.94); break;}
case 'A2': {$format = array(1190.55,1683.78); break;}
case 'A3': {$format = array(841.89,1190.55); break;}
/* case 'A4': default: {$format = array(595.28,841.89); break;} - ก่อนแก้ไข */
case 'A4': {$format = array(595.28,841.89); break;} /* หลังแก้ไข */
case 'A5': {$format = array(419.53,595.28); break;}
case 'A6': {$format = array(297.64,419.53); break;}
case 'A7': {$format = array(209.76,297.64); break;}
ขอฝากเว็บหน่อยนะครับ (ถ้าผิดกฎ รบกวน Admin ลบให้ด้วยนะครับ) https://ssl.siamecohost.com จำหน่าย SSL Certificate ราคาถูก เริ่มต้นเพียงปีละ 370 บาท เท่านั้น ในหน้า ขอใบเสนอราคา ผมก็ใช้ mpdf ในการสร้างไฟล์ .pdf ครับ
ประวัติการแก้ไข 2024-09-12 08:19:27
Date :
2024-09-12 08:15:25
By :
Boss-Aek
Load balance : Server 04