簡體   English   中英

生成空白頁 FPDF

[英]Generating Blank Page FPDF

這是我的 billingpdf.php,如果我點擊提交按鈕,它只會繼續生成一個空白頁面。 當我嘗試刪除並在 billingpdf.php 上放置一些基本代碼時,它已經創建了 pdf,它顯示了我輸入的消息,但是當我嘗試使用提交按鈕時,它似乎不再生成 pdf。 誰是 FPDF 的專家?

<?php
    session_start();
    if (!isset($_SESSION["uemail"])){
        header('Location: login.php');  }
        $uid = $_SESSION['UserID'];
    ?>
    <?php
    if(isset($_POST['submit']))
    {
    require("fpdf.php");
    require ("../util/dbConnection.php");
    $pdf = new FPDF();
    $pdf->AddPage();
    $pdf->SetFont('Arial', '', 10);
    $pdf->Cell(18, 10, '', 0);
    $pdf->Cell(150, 10, 'Testing"', 0);
    $pdf->SetFont('Arial', '', 9);
    $pdf->Cell(50, 10, 'Date: '.date('d-m-Y').'', 0);
    $pdf->Ln(15);
    $pdf->SetFont('Arial', 'B', 11);
    $pdf->Cell(70, 8, '', 0);
    $pdf->Cell(100, 8, 'Billing Assessment', 0);
    $pdf->Ln(23);
    $pdf->SetFont('Arial', 'B', 8);
    $pdf->Cell(20, 8, 'Expense ID', 0);
    $pdf->Cell(30, 8, 'Request Booking', 0);
    $pdf->Cell(20, 8, 'Request Date', 0);
    $pdf->Cell(20, 8, 'Due date', 0);
    $pdf->Cell(25, 8, 'Amount', 0);
    $pdf->Ln(8);
    $pdf->SetFont('Arial', '', 8);
    $sql = "SELECT ExpenseID, reqbookID, RequestBooking, requestDate, amount, 
                             DATE_ADD(requestDate,INTERVAL 30 DAY) as duedate 
                             FROM tblbilling NATURAL JOIN tblbookreq  
                             WHERE UserID = $uid ORDER BY requestDate";
    $result = $conn->query($sql);
    while ($row = $result->fetch_assoc()){
        $pdf->Cell(20, 8, $row['ExpenseID"'], 0);
    $pdf->Cell(30, 8, $row['RequestBooking'], 0);
    $pdf->Cell(20, 8, $row['requestDate'], 0);
    $pdf->Cell(20, 8, $row['duedate'], 0);
    $pdf->Cell(25, 8, $row['amount'], 0);

    }
    $pdf->Output();
    }
    ?>

這是我的 billing.php

<h2>Services and Charges</h2>

        <div class="content" style="border:1px dotted black; padding:1%; border-radius:1em; ">  



            <select style="margin-bottom:1%;">
                <option> --- </option>
                <option>Weekly</option>
                <option>Monthly</option>
            </select>
            <select style="margin-bottom:1%;">
                <option> --- </option>
                <option>Laundry</option>
                <option>Cafe</option>
                <option>Maintenance</option>
            </select>

            <input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for Expenses...">

            <table id="myTable" cellpadding=10>
                <thead>
                    <tr>
                      <th>Expense ID</th>
                      <th>Expense Name</th>
                      <th>Date Requested</th>
                      <th>Date Due</th>
                      <th>Amount</th>
                    </tr>
                </thead>
                <input type="submit" value="Print"style="float:right;" ></input>
                <tbody>
                </form> 
                    <?php 
                        include "../util/dbConnection.php";
                        $sql = "SELECT ExpenseID, reqbookID, RequestBooking, requestDate, amount, DATE_ADD(requestDate,INTERVAL 30 DAY) as duedate FROM tblbilling NATURAL JOIN tblbookreq  WHERE UserID = $uid ORDER BY requestDate";
                        $result = $conn->query($sql);

                        while ($row = $result->fetch_assoc()){
                            echo "<tr>
                            <td>".$row["ExpenseID"]."</td>
                            <td>".$row["RequestBooking"]."</td>
                            <td>".$row["requestDate"]."</td>
                            <td>".$row["duedate"]."</td>
                            <td>".$row["amount"]."</td>
                            </tr>";
                        }
                    ?>

                </tbody>

            </table>


        </div>

試試這個,我在使用 FPDF 庫生成動態 Pdf 時遇到了同樣的問題,但這已通過 $pdf->SetAutoPageBreak(false); 解決了;

        $pdf->AddPage('L','A4');
        $pdf->SetFont('Arial','',8);
        $pdf->SetHeight(4);
        $pdf->SetAutoPageBreak(false);

我有過幾次相同的經歷,我通過以下方式解決了它:

查看運行 PHP 腳本的文件夾中的error_log文件。 通常,在它的末尾有一條錯誤消息,它與您收到錯誤的腳本有關。

就我而言,我收到了這條消息:

[2019 年 11 月 29 日 13:33:44 UTC] PHP 致命錯誤:未捕獲異常:FPDF 錯誤:一些數據已經輸出,無法發送 PDF 文件(輸出開始於 /home/xxxxxx/public_html/sla/connectdb .php:19) 在 /home/xxxxxx/public_html/sla/fpdf/fpdf.php:271

它告訴我的是關於在 FPDF 生成報告的任何部分之前發送 HTML 語句的經典語句。

它還說它開始於connectdb.php腳本的第 19 行。 connectdb.php 是一個小腳本,由主腳本中的“include”語句引入,以“<?php”開頭並以“?>”。

但是,除此之外還有兩三個回車(CR),這導致在執行主腳本時將空行輸出為 HTML,因此顯示完全空白的頁面。 我刪除了所有 CR,並且報告神奇地起作用了! 只需確保腳本中沒有可能導致輸出空行的地方。

順便說一句,錯誤日志對於確定錯誤 500 消息的原因也非常有用,這些消息沒有提供其他信息來幫助您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM