2013-09-11 67 views
0

只是想問,爲什麼我的PDF文件不是在硝基pdf中打開。我使用fpdf。我只是試圖在我的PD中有一個奇特的表,但似乎有一個錯誤。任何人都可以弄清楚它是哪一個?這裏是代碼:PHP到PDF使用FPDF無法打開我的PDF文件(損壞)

<?php 

mysql_select_db($database_iexam, $iexam); 
$query_getstudent = sprintf("SELECT * FROM exam_students WHERE stud_subject_id = %s", GetSQLValueString($colname_getstudent, "int")); 
$getstudent = mysql_query($query_getstudent, $iexam) or die(mysql_error()); 
$row_getstudent = mysql_fetch_assoc($getstudent); 
$totalRows_getstudent = mysql_num_rows($getstudent); 

//defining objects 
    $subject_id = $_SESSION['subject_id']; 
    $getsub = mysql_query("SELECT subject_description FROM exam_subjects WHERE subject_id = '$subject_id'")or die(mysql_error()); 
    while($gotit = mysql_fetch_array($getsub)){ 
    $subj = $gotit['subject_description']; 
    } 

require_once("fpdf/fpdf.php"); 

class PDF extends FPDF 
{ 

function FancyTable() 
{ 
    // Colors, line width and bold font 
    $this->SetFillColor(255,0,0); 
    $this->SetTextColor(255); 
    $this->SetDrawColor(128,0,0); 
    $this->SetLineWidth(.3); 
    // Header 
    $w = array(40, 35, 40, 45); 
     $this->Cell($w,7,$header["Name"],1,0,'C',true); 
     $this->Cell($w,7,$header["ID Number"],1,0,'C',true); 
     $this->Cell($w,7,$header["Passwords"],1,0,'C',true); 

    $this->Ln(); 
    // Color and font restoration 
    $this->SetFillColor(224,235,255); 
    $this->SetTextColor(0); 
    // Data 
    $fill = false; 

    do { 
    $shanks = $row_getstudent['stud_valid_nos']; 
    $mugiwara = mysql_query("SELECT * FROM exam_sections WHERE sec_id_num = '$shanks'")or die(mysql_error()); 
    while($ben = mysql_fetch_array($mugiwara)){ 
    $beckman = $ben['sec_firstname']; 
    $usopp = $ben['sec_lastname']; 
    } 

    $trafalgar = $row_getstudent['stud_id']; 
    $vergo = mysql_query("SELECT pass_password FROM exam_passwords WHERE pass_user_id = '$trafalgar'")or die(mysql_error()); 
    while($caesar = mysql_fetch_array($vergo)){ 
    $smoker = $caesar['pass_password']; 
    } 

     $this->Cell($w[0],6,"$beckman $usopp",'LR',0,'L',$fill); 
     $this->Cell($w[1],6,"Shanks",'LR',0,'R',$fill); 
     $this->Cell($w[2],6,"$smoker",'LR',0,'R',$fill); 
     $this->Ln(); 
     $fill = !$fill; 


} while ($row_getstudent = mysql_fetch_assoc($getstudent)); 


    // Closing line 
    $this->Cell(array_sum($w),0,'','T'); 
} 
} 
$pdf = new PDF(); 
$pdf->AddPage(); 
$pdf->FancyTable(); 
$pdf->Output(); 
$pdf->SetAutoPageBreak(true, 20); 
$pdf->SetMargins(20, 20, 20); 
$pdf->Cell(40,10,'PDF for '.$subj); 
$pdf->Ln(10); 
$pdf->Output();?> 
+0

在txt編輯器中打開文件,檢查是否有一個php錯誤消息在那裏 – 2013-09-11 03:40:27

回答

0

$報頭在這些線的第三arguement未定義:

$this->Cell($w,7,$header["Name"],1,0,'C',true); 
$this->Cell($w,7,$header["ID Number"],1,0,'C',true); 
$this->Cell($w,7,$header["Passwords"],1,0,'C',true); 
+0

好的。我的pdf只是工作。呵呵。但我的數據庫中的記錄沒有顯示 –

+0

我沒有看到$ getstudent在任何地方定義,如果我正確地跟蹤您的代碼,數據應該來自哪裏。 –

+0

獲得學生是一個記錄集。等待我要粘貼在那裏。 –

0

執行類似於上述ob_start()和ob_clean()輸出之前

ob_start(); 
 

 
$pdf = new PDF(); 
 
$pdf->AddPage(); 
 
$pdf->FancyTable(); 
 
$pdf->Output(); 
 
$pdf->SetAutoPageBreak(true, 20); 
 
$pdf->SetMargins(20, 20, 20); 
 
$pdf->Cell(40,10,'PDF for '.$subj); 
 
$pdf->Ln(10); 
 

 
ob_clean(); 
 

 
$pdf->Output();

像這樣做ob_start()和ob_clean() )之前輸出