fpdf标头没有出现

时间:2017-01-25 12:35:17

标签: php fpdf

我已经阅读了FPDF以及为什么我的标题没有显示,每个人都说同样的事情。我必须改变:

new FPDF() 

进入

new PDF() 

我试过,但后来我收到HTTP 500错误。我不知道为什么我的标题没有显示在PDF文档上。

我的代码如下:

 <?php
 //set the question values
 $questions     = array(
 'name' => "Name: ",
 'date' => "Date: ",
 'first' => "First Day of Leave: ",
 'last' => "Last Day of Leave: ",
 'days' => "Number of Days Taken: ",
 'email' => "Managers Email: ",
 'sig' => "Signed: "

);
//set the question answers
$date          = $_POST['date'];
$first         = $_POST['first'];
$last          = $_POST['last'];
$days          = $_POST['days'];
$email         = $_POST['email'];
$sig           = $_POST['sig'];
$name          = $_POST['name'];
//set the question names
$questionName  = $questions['name'];
$questionDate  = $questions['date'];
$questionFirst = $questions['first'];
$questionLast  = $questions['last'];
$questionDays  = $questions['days'];
$questionEmail = $questions['email'];
$questionSig   = $questions['sig'];
//Create the PDF
require('fpdf.php');

class PDF extends FPDF {
function Header() {
    $this->Image('http://domain.co.uk/img/quote-header.png', 10, 6, 30);
    $this->SetFont('Arial', 'B', 15);
    $this->Cell(80);
    $this->Cell(30, 10, 'Title', 1, 0, 'C');
    $this->Ln(20);
}
}

$pdf = new FPDF();
$pdf->AddPage();

$pdf->SetFont('Arial', 'B', 16);
//insert questions and answers
$pdf->MultiCell(150, 10, sprintf("%s %s", $questionDate, $date));
$pdf->Ln();
$pdf->MultiCell(150, 10, sprintf("%s %s", $questionName, $name));
$pdf->Ln();
$pdf->MultiCell(150, 10, sprintf("%s %s", $questionFirst, $first));
$pdf->Ln();
$pdf->MultiCell(150, 10, sprintf("%s %s", $questionLast, $last));
$pdf->Ln();
$pdf->MultiCell(150, 10, sprintf("%s %s", $questionDays, $days));
$pdf->Ln();
$pdf->MultiCell(150, 10, sprintf("%s %s", $questionEmail, $email));
$pdf->Ln();
$pdf->MultiCell(50, 10, sprintf("%s %s", $questionSig, $sig));
//display pdf
$pdf->Output();

1 个答案:

答案 0 :(得分:0)

如果使用$pdf = new FPDF()创建对象,则调用父类FPDF的构造函数,而不是子类PDF的构造函数。在父类中,Header()函数为空,这就是为什么没有出现的原因。您必须使用$pdf = new PDF()创建对象,然后每次添加页面时都会调用自定义Header()函数。

进行更改后,我测试了您的代码,当我使用真正存在的图片网址时,它可以正常工作。如果我使用不存在的URL,PHP会抱怨HTTP请求失败。如果我删除了$this->Image('http://...')行,则错误就会消失,并且会打印出标题&#39;标题&#39;在标题中,正如您所期望的那样。