2011-09-07 3 views
1

FPDF로 만드는 PDF의 머리글과 바닥 글 설정에 문제가 있습니다. FPDF 설명서 (http://www.fpdf.org/)에 명시된대로 FPDF를 확장하여 머리글과 바닥 글을 만들 수있는 새로운 클래스 (PDF)를 만들었습니다. 에코에 사용하는 데, 함수로 changeName로 설정되는 (내가 변수의 값을 유지 할 수 있음을 확인했다에도 불구하고,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 : 클래스 PDF에 대한 코드는 다음과 같다 다른 머리글 내용이 표시 되더라도 PDF가 인쇄 될 때 changeName의 끝)이 나타나지 않습니다. 나는 또한 $ 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

관련 문제