• User Newbie

    Template in html/php e libreria fpdf

    Ciao a tutti ragazzi sto utilizzando la libreria fpdf per generare pdf e poterli inviare tramite email, ho già effettuato la connessione al DB e funziona tutto, solo che ho un problema, io vorrei usare un template creato in html con alcune righe di codice in php, come posso fare per passargli come "parametro" questo template? vi posto il codice del collegamento al database con la libreria fpdf : dove inserisco questa pagina? esempio ho provato addpage('miotemplate.php') ma non funziona Grazie mille in anticipo!!

    [PHP]
    <?php
    require('fpdf.php');
    class PDF_MySQL_Table extends FPDF
    {
    var $ProcessingTable=false;
    var $aCols=array();
    var $TableX;
    var $HeaderColor;
    var $RowColors;
    var $ColorIndex;
    function Header()
    {
    //Print the table header if necessary
    if($this->ProcessingTable)
    $this->TableHeader();
    }
    function TableHeader()
    {
    $this->SetFont('Arial','B',12);
    $this->SetX($this->TableX);
    $fill=!empty($this->HeaderColor);
    if($fill)
    $this->SetFillColor($this->HeaderColor[0],$this->HeaderColor[1],$this->HeaderColor[2]);
    foreach($this->aCols as $col)
    $this->Cell($col['w'],6,$col['c'],1,0,'C',$fill);
    $this->Ln();
    }
    function Row($data)
    {
    $this->SetX($this->TableX);
    $ci=$this->ColorIndex;
    $fill=!empty($this->RowColors[$ci]);
    if($fill)
    $this->SetFillColor($this->RowColors[$ci][0],$this->RowColors[$ci][1],$this->RowColors[$ci][2]);
    foreach($this->aCols as $col)
    $this->Cell($col['w'],5,$data[$col['f']],1,0,$col['a'],$fill);
    $this->Ln();
    $this->ColorIndex=1-$ci;
    }
    function CalcWidths($width,$align)
    {
    //Compute the widths of the columns
    $TableWidth=0;
    foreach($this->aCols as $i=>$col)
    {
    $w=$col['w'];
    if($w==-1)
    $w=$width/count($this->aCols);
    elseif(substr($w,-1)=='%')
    $w=$w/100*$width;
    $this->aCols*['w']=$w;
    $TableWidth+=$w;
    }
    //Compute the abscissa of the table
    if($align=='C')
    $this->TableX=max(($this->w-$TableWidth)/2,0);
    elseif($align=='R')
    $this->TableX=max($this->w-$this->rMargin-$TableWidth,0);
    else
    $this->TableX=$this->lMargin;
    }
    function AddCol($field=-1,$width=-1,$caption='',$align='L')
    {
    //Add a column to the table
    if($field==-1)
    $field=count($this->aCols);
    $this->aCols[]=array('f'=>$field,'c'=>$caption,'w'=>$width,'a'=>$align);
    }
    function Table($query,$prop=array())
    {
    //Issue query
    $res=mysql_query($query) or die('Error: '.mysql_error()."<BR>Query: $query");
    //Add all columns if none was specified
    if(count($this->aCols)==0)
    {
    $nb=mysql_num_fields($res);
    for($i=0;$i<$nb;$i++)
    $this->AddCol();
    }
    //Retrieve column names when not specified
    foreach($this->aCols as $i=>$col)
    {
    if($col['c']=='')
    {
    if(is_string($col['f']))
    $this->aCols*['c']=ucfirst($col['f']);
    else
    $this->aCols*['c']=ucfirst(mysql_field_name($res,$col['f']));
    }
    }
    //Handle properties
    if(!isset($prop['width']))
    $prop['width']=0;
    if($prop['width']==0)
    $prop['width']=$this->w-$this->lMargin-$this->rMargin;
    if(!isset($prop['align']))
    $prop['align']='C';
    if(!isset($prop['padding']))
    $prop['padding']=$this->cMargin;
    $cMargin=$this->cMargin;
    $this->cMargin=$prop['padding'];
    if(!isset($prop['HeaderColor']))
    $prop['HeaderColor']=array();
    $this->HeaderColor=$prop['HeaderColor'];
    if(!isset($prop))
    $prop=array();
    if(!isset($prop))
    $prop=array();
    $this->RowColors=array($prop,$prop);
    //Compute column widths
    $this->CalcWidths($prop['width'],$prop['align']);
    //Print header
    $this->TableHeader();
    //Print rows
    $this->SetFont('Arial','',11);
    $this->ColorIndex=0;
    $this->ProcessingTable=true;
    while($row=mysql_fetch_array($res))
    $this->Row($row);
    $this->ProcessingTable=false;
    $this->cMargin=$cMargin;
    $this->aCols=array();
    }
    }
    require('miodb.php');
    class PDF extends PDF_MySQL_Table
    {
    function Header()
    {
    //Title
    $this->SetFont('Arial','',18);
    $this->Cell(0,6,'Notifica n',0,1,'C');
    $this->Ln(10);
    //Ensure table header is output
    parent::Header();
    }
    }
    //Connect to database
    mysql_connect('127.0.0.1','root','');
    mysql_select_db('miodb');
    $pdf=new PDF();
    $pdf->AddPage();
    //First table: put all columns automatically
    $pdf->Table('select cliente,seriale from jde');

    //Send file
    $pdf->Output('prova.pdf','F');
    ?>[/PHP]


  • User Newbie

    Fatemi sapere se avete bisogno di più informazioni, esiste una funzione FPDF apposta per implementare il template in html? Grazie