Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > สอบถามหน่อยครับ ออกรายงานด้วย mpdf ขึ้น แบบนี้แก้ยังไงครับผม



 

สอบถามหน่อยครับ ออกรายงานด้วย mpdf ขึ้น แบบนี้แก้ยังไงครับผม

 



Topic : 129211



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์




ผมลองทำตามกระทู้ที่ในนี้สอน ออกรายงานด้วย mpdf แล้วมันขึ้น ว่า
Fatal error: Switch statements may only contain one default clause in C:\xampp\htdocs\testphp\mpdf\mpdf.php on line 1432
ต้องแก้ไขยังไงครับ รบกวนได้โปรดช่วยผมหน่อยนะครับ

error

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







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-10-14 17:39:39 By : coke0213 View : 5991 Reply : 9
 

 

No. 1



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


update mpdf






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-14 18:58:30 By : mr.v
 


 

No. 2



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.v เมื่อวันที่ 2017-10-14 18:58:30
รายละเอียดของการตอบ ::
ผมอัพเดทเป็นตัว mpdf 6.0 แล้วก้ยังไม่ได้ครับ ขึ้น ว่า Fatal error: Uncaught ArgumentCountError: Too few arguments to function mPDF::SetAutoFont(), 0 passed in C:\xampp\htdocs\testphp\Show_tutor2.php on line 49 and exactly 1 expected in C:\xampp\htdocs\testphp\mpdf60\mpdf.php:1732 Stack trace: #0 C:\xampp\htdocs\testphp\Show_tutor2.php(49): mPDF->SetAutoFont() #1 {main} thrown in C:\xampp\htdocs\testphp\mpdf60\mpdf.php on line 1732

ต้องแก้ยังไงครับผม รบกวนด้วยครับผม

4กห54ห5
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-14 20:42:57 By : coke0213
 

 

No. 3



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


เปิดเอกสารของมันดูครับว่า SetAutoFont ต้องระบุอะไรบ้าง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-14 22:38:13 By : mr.v
 


 

No. 4



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : mr.v เมื่อวันที่ 2017-10-14 22:38:13
รายละเอียดของการตอบ ::
ดูมาแล้วครับมันบอกว่า มันยกเลิกใช้คำสั่ง setautofont ไปแล้วให้เปลี่ยนมาใช้ $this->autoScriptToLang = false;
อันนี้อะครับพอผมใส่เข้าไปแล้วมันว่า
Fatal error: Uncaught Error: Using $this when not in object context in C:\xampp\htdocs\testphp\Show_tutor2.php:49 Stack trace: #0 {main} thrown in C:\xampp\htdocs\testphp\Show_tutor2.php on line 49

ต้องแก้ไขยังไงครับผม

45654

Code (PHP)
<?php
    require_once('mpdf60/mpdf.php'); //ที่อยู่ของไฟล์ mpdf.php ในเครื่องเรานะครับ
    ob_start(); // ทำการเก็บค่า html นะครับ

    require 'connectdb.php';
    $q = "select * from tutor";
    $result = mysqli_query($con, $q);
    ?>
<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);
                       $html = ob_get_contents();

                ?>
    </body>
</html>

<?php
ob_end_clean();
$this->autoScriptToLang = false;
$pdf = new mPDF('th', 'A4-L', '0', ''); //การตั้งค่ากระดาษถ้าต้องการแนวตั้ง ก็ A4 เฉยๆครับ ถ้าต้องการแนวนอนเท่ากับ A4-
$pdf->SetDisplayMode('fullpage');
$pdf->WriteHTML($html, 2);
$pdf->Output();
?>




ประวัติการแก้ไข
2017-10-16 19:13:39
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-16 19:13:03 By : coke0213
 


 

No. 5



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


ไม่เคยใช้นะแต่จากที่อ่านที่ จขกท เขียน
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
 


 

No. 6



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-10-16 20:12:45
รายละเอียดของการตอบ ::
อ่อขอบคุณครับ แต่ข้อมูลมันขึ้นแค่ 2 บรรทัดเองอะครับ มันขึ้นไม่หมดครับ ต้องแก้ตรงไหนอ่อครับ

Code (PHP)
<?php
    require_once('mpdf60/mpdf.php'); //ที่อยู่ของไฟล์ mpdf.php ในเครื่องเรานะครับ
    ob_start(); // ทำการเก็บค่า html นะครับ

    require 'connectdb.php';
    $q = "select * from tutor";
    $result = mysqli_query($con, $q);
    ?>
<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();
ob_end_clean();
$pdf = new mPDF('th', 'A4-L', '0', ''); //การตั้งค่ากระดาษถ้าต้องการแนวตั้ง ก็ A4 เฉยๆครับ ถ้าต้องการแนวนอนเท่ากับ A4-L
$pdf->autoScriptToLang = false;
$pdf->SetDisplayMode('fullpage');
$pdf->WriteHTML($html, 2);
$pdf->Output();
?>

9874512
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-16 20:28:25 By : coke0213
 


 

No. 7



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


ดู tag ปิด-เปิด ให้ดีก่อน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-16 21:56:56 By : Chaidhanan
 


 

No. 8



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


</table>
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-17 05:39:12 By : mr.v
 


 

No. 9



โพสกระทู้ ( 6 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter

พอดีเพิ่งเห็นกระทู้นี้จาก 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
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามหน่อยครับ ออกรายงานด้วย mpdf ขึ้น แบบนี้แก้ยังไงครับผม
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่