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