2011-09-07 65 views
1

我在設置用FPDF創建的PDF的頁眉和頁腳時遇到了一些麻煩。按照FPDF手冊(http://www.fpdf.org/)的規定,我創建了一個擴展FPDF的新類(PDF),以便創建我的頁眉和頁腳。該類PDF的代碼如下:PHP/FPDF - 類變量的值不會出現在頁眉和頁腳

<?php 
require('fpdf.php'); 

class PDF extends FPDF 
{ 

var $primeiroNome; 
var $ultimoNome; 

function changeName($firstName, $lastName) { 
$this->primeiroNome = $firstName; 
$this->ultimoNome = $lastName; 
} 
// Cabeçalho 
function Header() 
{ 
// Cor do texto 
$this->SetTextColor(0, 0, 0); 
// Logo 
$this->Image('Imagens/manviaPdf.png',110,6); 
// Tipo de letra 
if($this->page == 1) { 
    $this->SetFont('Arial','B',15); 
    // Titulo 
    $this->Cell(30,10,'Currículo institucional de:',0,0,'L'); 
    // Quebra de linha 
    $this->Ln(10); 
    // Nome colaborador 
    $this->Cell(30,10, $primeiroNome . ' ' . $ultimoNome,0,0,'L'); 
} 
// Line break 
$this->Ln(12); 
} 

// Rodapé 
function Footer() 
{ 
// Cor do texto 
$this->SetTextColor(0, 0, 0); 
// Posicionar o cabeçalho a 1,5 centimetros do fim da página 
$this->SetY(-15); 
// Tipo de letra 
$this->SetFont('Arial','I',8); 
// Número da página 
$this->Cell(0,10,'Pag '.$this->PageNo().'/{nb}',0,0,'L'); 
// Informação adicional 
$this->Cell(0,10,'Curriculum Vitae de ' . $ultimoNome . ', ' . $primeiroNome . ' | MANVIA, S.A', 0, 0, 'R'); 
} 

} 
?> 

變量$ primeiroNome和$ ultimoNome,儘管被與功能changeName集(我已經證實,變量做保留值,且不使用回聲在打印PDF時,不會出現changeName的結尾,但會顯示其餘的Header內容。我也嘗試使用$ GLOBALS,但沒有成功。

的PDF對象是使用下面的代碼創建:

$link = mysql_connect('localhost', 'user', 'password'); 
if (!$link) { 
die("A ligação ao servidor não foi possível!"); 
} 
$bd_escolhida = mysql_select_db('criadorcv',$link); 
if(!$bd_escolhida) { 
die("Não é possível escolher a base de dados definida"); 
} 

$queryString = "SELECT primeiroNome, ultimoNome FROM cartaovisita WHERE id=" . $value; 
$query = mysql_query($queryString) or die ("Problema ao obter os dados do colaborador"); 
$row = mysql_fetch_array($query); 

$pdf = new PDF(); 
$pdf->changeName($row['primeiroNome'], $row['ultimoNome']); 

mysql_free_result($query); 

$pdf->AliasNbPages(); 
$pdf->AddPage(); 
$pdf->AddFont('Garamond', '', 'GARA.php'); 
$pdf->SetFont('Arial','B',15); 
$pdf->SetFillColor(174, 38, 22); 
$pdf->SetTextColor(255, 255, 255); 
$pdf->Cell(0,10,'Cartão de Visita',1, 0, 'L', true); 
$pdf->SetTextColor(0, 0, 0); 
..... 

任何幫助,將不勝感激。

+0

調試時,儘量捨棄無關的代碼。如果'echo'顯示您的值達到'changeName()',那麼對您用來獲取它們的SQL代碼進行故障排除是毫無意義的。 –

回答

2

您提到的那些變量是類屬性,而不是方法的局部變量,因此您必須使用$this->前綴。而不是這樣的:

$this->Cell(0,10,'Curriculum Vitae de ' . $ultimoNome . ', ' . $primeiroNome . ' | MANVIA, S.A', 0, 0, 'R'); 
} 

...這樣做:

$this->Cell(0,10,'Curriculum Vitae de ' . $this->ultimoNome . ', ' . $this->primeiroNome . ' | MANVIA, S.A', 0, 0, 'R'); 
} 

您正確保存,但稱他們錯了:)

+0

修復它,非常感謝! – Judas