Ciao a tutti,

avrei un problema da sottoporvi.

Sto usando fpdf per la creazione di listini, catalighi, preventivi e ordini.

Il problema risiede con l'uso delle immagini. Se prendo un immagine da un path "fisso" e quindi conosco il nome dell'immagine tutto va bene; infatti riesco anche a stamparle sul pdf.

Ma quando si tratta di prelevare delle immagini da un db, allora li si cracca tutto quanto.
L'immagine presa dal db mi serve per il metodo Header ( poi per la stampa dei listini e cataloghi è la stessa cosa, se riesco a visualizzare l'immagine per l header, allora posso anche per i listini e cataloghi ).

Vi posto un poco di codice, anche se un pò scarabocchiato da me.

FILE : header_footer.inc

Codice PHP:
/**  * Class extention for Header and Footer Definitions  *  */     
class pdf_usage extends fpdf_table {  
public function 
Header() { 
$this->SetStyle("head1","arial","",6,"160,160,160");
 
$this->SetStyle("head2","arial","",6,"0,119,220"); 
$this->SetY(10); 
//Quà va l'header del gestionale 
//Il Secondo campo è la dimensione dell'header 
$this->Image($row_HeaderFooter['header_img'],30,10,150,0);   
}     

Questa è la riga incriminata
$this->Image($row_HeaderFooter['header_img'],30,10,150,0);

Ho provato anche a scrivere questo codice, tentando di aggirare il problema creando un file vuoto e poi attraverso funzioni binarie scrivere sopra il contenuto del file preso da db e poi visualizzarlo:

Codice PHP:
$file="db_image.jpg"
$from_db $row_HeaderFooter['header_img']; 
touch($file) or die("Il file non può essere creato");
 
// apro il file in scrittura 
$fp=fopen($file'wb') or die("Il file non può essere aperto in lettura"); 
// scrivo nel file fwrite( $fp , "123" ) or die("Impossibile scrivere nel file"); 
// chiusura file fclose( $fp ) or die("Impossibile chiudere il file");
 // dimensioni in pixel immagine $informazioni=getimagesize($file);
 // dimensioni originale 
// stampo immagine $pdf->Image( $file , 10 , 45 , $informazioni[0] , $informazioni[1] ); $this->Ln(20); 
Niente, mi da sempre errore anche questo codice che ho scritto.

Qualcuno di voi ha mai avuto a che fare con questo tipo di problema?

Ho però notato un comportamento strano nel metodo Image.

Se questo lo metto nella pagina dove creo la tabella, in questo modo:

$pdf->Image($row_HeaderFooter['header_img'], 30, 10, 35, 0 );

L'immagine viene visualizzata, ma naturalmente non viene ripetuta per ogni pagina come header.

Ma nel metodo Header, utilizzo la stessa nomenclatura, solamente che chiamo il metodo Image con l'operatore $this in questo modo:

$this->Image($row_HeaderFooter['header_img'],30,10,150,0);

Questo mi restituisce l'errore:

FPDF error: Image file has no extension and no type was specified:



Very very strange......

What do you think?

Prego, se qualcuno ha avuto a che fare con questo tipo di errore, mi aiuti per favore.

Cristian Baldinu