2017-01-25 6 views
0

Я прочитал 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

http://stackoverflow.com/questions/21222079/500-internal-server-error-php-script-tried-most-answers _A 500 ошибка в PHP означает «перейдите в свой журнал ошибок» _ – JustOnUnderMillions

+0

попробуйте отключите часть изображения: $ this-> Image ('http://domain.co.uk/img/quote-header.png', 10, 6, 30); возможно, FPDF наткнется на недоступное доменное имя .... –

+0

@ChristianFelix попробовал, что сэр все еще ничего не появляется. Нет ошибок. Просто ничего не отображается для заголовка – RedZ

ответ

0

Если вы создаете объект с $pdf = new FPDF() то конструктор родительского класса FPDF называется, а не конструктор дочернего класса PDF. В родительском классе функция Header() пуста, поэтому ничего не появляется. Вы должны создать объект с $pdf = new PDF(), а затем ваша пользовательская функция Header() будет вызываться каждый раз при добавлении страницы.

После внесения изменений я проверил ваш код, и он работает, когда я использую URL-адрес изображения, который действительно существует. Если я использую URL-адрес, который не существует, PHP будет жаловаться на отказ HTTP-запроса. Если я удалю строку $this->Image('http://...'), ошибка исчезнет, ​​и она напечатает только заголовок в заголовке, как и следовало ожидать.