我已经阅读了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();
答案 0 :(得分:0)
如果使用$pdf = new FPDF()
创建对象,则调用父类FPDF
的构造函数,而不是子类PDF
的构造函数。在父类中,Header()
函数为空,这就是为什么没有出现的原因。您必须使用$pdf = new PDF()
创建对象,然后每次添加页面时都会调用自定义Header()
函数。
进行更改后,我测试了您的代码,当我使用真正存在的图片网址时,它可以正常工作。如果我使用不存在的URL,PHP会抱怨HTTP请求失败。如果我删除了$this->Image('http://...')
行,则错误就会消失,并且会打印出标题&#39;标题&#39;在标题中,正如您所期望的那样。