Newsgroup: it.comp.www.php
Titolo: Problemi PDF classe R&OS

Un saluto a tutti i coders.
Scusate se sono prolisso!
Apache/2.0.55 (Win32)
PHP version :5.1.1
MySQL version :5.0.17-nt
Utilizzo la classe fornita da R&OS per generare PDF
ma in alcuni casi fallisce e ricevo il seguente errore di
acrobat reader "There was an error opening this document. The file is
damageg..."
Come vedrete CODICE 1 e 2 sono sotanzialmente identici, come identico
è l'output della variabile $data,
pero' COD1 funziona e l'altro no, o meglio (anzi peggio!) non sempre...
Altro comportamento bizzarro:
la query 'select * from articoli where progetto_id=1' restituisce 54
records
che vengono stampati correttamente, dopo averne cancellato una 50ina (a
caso)
la stampa genera l'errore...
Adattando ai miei scopi l'esempio fornito nella documentazione di R&OS
ottengo un pdf da una query...
CODICE 1
	include ('class.ezpdf.php');
	$pdf =& new Cezpdf();
	$pdf->selectFont('./fonts/Helvetica.afm');
	$pdf->ezSetCmMargins(1,1,1,1);
	$pdf->ezStartPageNumbers('550','10',7,'left','',1);
	$host = 'localhost';	$user = 'USER';	$password = 'PASSWORD';	$database
= 'myauth';
	$query = 'select * from articoli where progetto_id=3';
	$link = mysql_connect($host,$user,$password);
	mysql_select_db($database);
	$data = array();
	$result = mysql_query($query);
	while($data[] =  mysql_fetch_assoc($result)) {}
	$cols=array_combine( array_keys($data[0]),array_keys($data[0]) );
	unset($cols[progetto_id]);
$x=array('xOrientation'=>'center','showHeadings'=>1,'width'=>500,'showLines'=>1,'shadeCol'=>array(0.9137,0.9137,0.913
7),'fontSize'=>8,'cols'=>array('descrizione'=>array('width'=>310),'codice'=>array('width'=>50)
) );
	$pdf->ezTable($data,$cols,'',$x   );
	$pdf->ezStream();
...se porto il codice sul progetto che sto sviluppando, senza cambiare
nulla se non il
metodo per accedere ai dati ho quanto segue
CODICE 2
	[...]
	elseif (isset($_POST['action']) && $_POST['action']=='stampa'){
	$pdf =& new Cezpdf();
	$pdf->selectFont('../PDF/fonts/Courier.afm');
	$pdf->ezSetCmMargins(1,1,1,1);
	$pdf->ezStartPageNumbers('550','10',7,'left','',1);
	$data = array();
	$result = $p->get_articoli();  /* LA MIA QUERY */
	while($data[] =  mysql_fetch_assoc($result)) {}
	$cols=array_combine( array_keys($data[0]),array_keys($data[0]) );
	unset($cols[progetto_id]);
$x=array('xOrientation'=>'center','showHeadings'=>1,'width'=>500,'showLines'=>1,'shadeCol'=>array(0.9137,0.9137,0.913
7),'fontSize'=>8,'cols'=>array('descrizione'=>array('width'=>310),'codice'=>array('width'=>50)
) );
	$pdf->ezTable($data,$cols,'',$x);
	$pdf->ezStream();
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
$p->get_articoli() per la cronaca e':
function get_articoli($filter="",$limit=""){
	switch($filter){
		case NULL:
			$q=sprintf("SELECT * from articoli where progetto_id=%d
%s",$this->id,$limit);
			$this->num_articoli=mysql_num_rows(mysql_query(sprintf("SELECT *
from articoli where
progetto_id=%d",$this->id),$this->cnn));
			break;
		default:
			$q=sprintf("SELECT * from articoli %s and progetto_id=%d
%s",$filter,$this->id,$limit);
			$this->num_articoli=mysql_num_rows(mysql_query(sprintf("SELECT *
from articoli %s and
progetto_id=%d ",$filter,$this->id),$this->cnn));
			break;
		}
	$res=mysql_query($q,$this->cnn);
	if (is_resource($res) && mysql_num_rows($res)>0){
	return $res;
	}else{
		$q=sprintf("SELECT * from articoli where progetto_id=%d limit
0",$this->id);
		$res=mysql_query($q,$this->cnn);
		return $res;}
	}
In entrambi i casi print_r($data) ha lo stesso *identico* output che in
fin dei conti e' cio di cui ho bisogno per il pdf
Array
(
    [0] => Array
        (
            [id] => 116
            [progetto_id] => 3
            [codice] => P1
            [descrizione] => pentium 1
            [um] => pz
            [prezzo] => 5
            [quantita] => 1
        )
    [1] => Array
        (
            [id] => 117
            [progetto_id] => 3
            [codice] => P2
            [descrizione] => pentium 2
            [um] => pz
            [prezzo] => 10
            [quantita] => 1
        )
    [2] => Array
        (
            [id] => 118
            [progetto_id] => 3
            [codice] => P3
            [descrizione] => pentium 3
            [um] => pz
            [prezzo] => 15
            [quantita] => 1
        )
    [3] =>
)
Anticipatamente ringrazio e prometto di evitare di postare altri
romanzi
Stefano

alla faccia el prolisso!

 alla faccia el prolisso!
Hai ragione!
comunque ho risolto con un misero exit();
dopo  $pdf->ezStream();
Saluti!