FPDF e classe derivata !

di il
2 risposte

FPDF e classe derivata !

Buongiorno gente! Scrivo qui poichè ho un problema con la classe FPDF e la mia classe derivata PDF.
Posto del codice.

<?php

include_once "./salvataggio.php";
include_once "./fpdf17/fpdf.php";
class PDF extends FPDF{
		public $db;
		
		public function open(){
			$this->db = new MySql();
		}
			
	public function Header(){
 		$this->Image('logo.jpg',10,8,75);
 		$this->SetFont('Arial','B',20);
 		$this->SetTextColor(43,134,43);
 		$this->Ln(5);
 		$this->Cell(80);
 		$i = $_POST['id_p'];
 		$Sql = "SELECT nome,indirizzo,email FROM punti WHERE id_p='$i'";
 		$this->db->query($Sql);
 		$punto = $this->db->inObject();
 		$this->Cell(0,4,$punto->nome,0,1,'L');
 		$this->SetDrawColor(43,134,43);
 		$this->Line(90,23,200,23);
		$this->SetFont('Arial','B',10);
 		$this->SetTextColor(179,181,179);
 		$this->Ln(3);
 		$this->SetFont('Arial','B',9);
 		$this->Cell(0,5,$punto->indirizzo,0,1,'R');
 		$this->Cell(0,5,$punto->email,0,1,'R');
 		$this->Cell(0,5,'P.IVA / C.F.',0,1,'R');
 		$this->SetTextColor(0,0,0);
 		$this->Ln(5);
 		$this->db->clean();
	} 
	
	public function FancyTable($header){
    	// Colors, line width and bold font
    	$this->SetFillColor(255,0,0);
    	$this->SetTextColor(255);
    	$this->SetDrawColor(128,0,0);
    	$this->SetLineWidth(.3);
    	$this->SetFont('Times','B');
    	// Header
    	$w = array(40, 40, 55, 25, 25);
    	for($i=0;$i<count($header);$i++)
        	$this->Cell($w[$i],4,$header[$i],1,0,'C',true);
    	$this->Ln();
    	// Color and font restoration
    	$this->SetFillColor(224,235,255);
    	$this->SetTextColor(111,207,102);
    	$this->SetFont('');
    	// Data
    	$id = $_POST['id_c'];
    	$this->db->clean();
    	$Sql = "SELECT nome,cognome FROM clienti WHERE id_c='$id'";
    	$this->db->query($Sql);
    	$obj = $this->db->inArray();
    	$doc = $_POST['doc'];
    	$dest = $_POST['dest'];
    	$fill = false;
        	$this->Cell($w[0],6,$obj[0],'LR',0,'L',$fill);
        	$this->Cell($w[1],6,$doc,'LR',0,'L',$fill);
        	$this->Cell($w[2],6,$dest,'LR',0,'R',$fill);
        	$this->Cell($w[3],6,0,'LR',0,'R',$fill);
        	$this->Cell($w[4],6,0,'LR',0,'R',$fill);
        	$this->Ln();
        	$fill = !$fill;
    	// Closing line
    	$this->Cell(array_sum($w),0,'','T');
	}

};

$pdf = new PDF(); 
$pdf->open();
$pdf->Header();
// Column headings
$pdf->AddPage();
$header = array('Cliente', 'Tipo Documento', 'Luogo di Destinazione', 'Documento N', 'Del:');
$pdf->FancyTable($header);
$pdf -> Output(); 
?>
Mi spiego, io dovrei creare tramite un form un pdf che rappresenti al meglio una fattura.
Il problema sta che io devo interagire con un database, e purtoppo non riesco a mandare in stampa alcuni valori.
Se fate caso al codice è stata creata una funzione open al posto del costruttore, perchè se creo il costruttore non mi vede la variabile $db dicendomi che non posso chiamare il metodo query su una variabile che non è un oggetto.
Ovviando con la funzione open() riesco a vedere la variabile db solo nella funzione Header() dove stampa tutti i valori, mentre nella funzione FancyTable non riesco a far stampare il valore di $obj[0].
Ho pensato che si tratti di un problema di visibilità.
Chi è così gentile da aiutarmi a risolvere questo problema?
Grazie anticipatamente.

2 Risposte

  • Re: FPDF e classe derivata !

    Ragazzi ho risolto! Ma rimango in tema, usando MultiCell posso creare celle al cui interno posso andare a capo, ma lo spazio tra una e l'altra è troppo grande. Come posso fare per impostarlo in modo diverso? Grazie Mille.
  • Re: FPDF e classe derivata !

    Mi scuso per il commento pubblicato ma ho appena risolto! I mod possono anche chiudere la discussione!! Ho partecipato solo io! haha
Devi accedere o registrarti per scrivere nel forum
2 risposte