使用FPDF的PHP到PDF无法打开我的pdf文件(已损坏)

时间:2013-09-11 03:31:34

标签: php mysql pdf fpdf

想知道为什么我的pdf文件没有在nitro pdf中打开。我使用的是fpdf。我只是试图在我的pd中有一个花哨的表,但似乎有一个错误。谁能弄清楚它是谁?这是代码:

<?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();?>

2 个答案:

答案 0 :(得分:0)

$ header在这些行的第3个参数中未定义:

$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);

答案 1 :(得分:0)

在输出

之前,请执行ob_start()和ob_clean()之上的操作

&#13;
&#13;
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();
&#13;
&#13;
&#13;

在输出

之前,请执行ob_start()和ob_clean()之上的操作