title image


Smiley PDF mit FPDF erstellen - Problem mit Rahmen und HTML-Tags
hallo,



ich habe mir folgendes skript aus dem fpdf-tutorial geschnappt und schon minimal geändert. hierbei sind folgende html-tags mittlerweile umgesetzt: ,,,,,, sowie mein eigenes , (fett, schriftgröße 10 statt 8) und im "ansatz" . doch seht bitt selbst:




require('../../../php/pear/fpdf/fpdf.php');



class PDF extends FPDF

{

var $B;

var $I;

var $U;



function PDF($orientation='P',$unit='mm',$format='A4')

{

//Call parent constructor

$this->FPDF($orientation,$unit,$format);

//Initialization

$this->B=0;

$this->I=0;

$this->U=0;

}



function WriteHTML($html)

{

//HTML parser

$html=str_replace("\n",' ',$html);

$a=preg_split('//U',$html,-1,PREG_SPLIT_DELIM_CAPTURE);

foreach($a as $i=>$e)

{

if($i%2==0)

{

//Text

$this->Write(6, $e);

}

else

{

//Tag

if($e{0}=='/')

$this->CloseTag(strtoupper(substr($e,1)));

else

{

//Extract attributes

$a2=explode(' ',$e);

$tag=strtoupper(array_shift($a2));

$attr=array();

foreach($a2 as $v)

if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))

$attr[strtoupper($a3[1])]=$a3[2];

$this->OpenTag($tag,$attr);

}

}

}

}



function OpenTag($tag,$attr)

{

//Opening tag

if($tag=='B' or $tag=='I' or $tag=='U')

$this->SetStyle($tag,true);

if($tag=='BR')

$this->Ln(5);

if($tag=='TITLE') {

$this->SetFontSize(10);

$this->SetStyle('B',true);

if($tag=='TABLE')

$this->Ln(8);

}

}



function CloseTag($tag)

{

//Closing tag

if($tag=='B' or $tag=='I' or $tag=='U')

$this->SetStyle($tag,false);

if($tag=='TITLE') {

$this->SetStyle('B',false);

$this->SetFontSize(8);

}

if($tag=='TABLE')

$this->Ln(8);

}



function SetStyle($tag,$enable)

{

//Modify style and select corresponding font

$this->$tag+=($enable ? 1 : -1);

$style='';

foreach(array('B','I','U') as $s)

if($this->$s>0)

$style.=$s;

$this->SetFont('',$style);

}

}



$html='fett: Text, kursiv: Text, unterstrichen: Text, Zeilenumbruch...Titel: TextTabelle: TextTextBild: ';



$pdf=new PDF();

$pdf->AddPage();

$pdf->SetFont('Arial','',8);

$pdf->WriteHTML($html);

$pdf->Output();

?>



meine probleme sind folgende:

1. die ausgabe geschieht mittels WRITE(), wobei kein rahmen gesetzt werden kann! ich würde gerne MULTICELL nutzen, da dort ein rahmen möglich ist und im gegensatz zu CELL der text automatisch am zeilenende umgebrochen wird. aber wie??? einfach nur WRITE mit MULTICELL tauschen funktioniert natürlich nicht ...

2. wie im beispiel-ausgabetext ($HTML) ersichtlich wird, soll eine tabelle und ein bild (id stammt aus der DB) eingefügt werden:

2.1. können bilder mitten im text eingefügt werden?? bei IMAGE() brauch ich ja immer die konkreten koordinaten ...

2.2. wie setze ich das prinzip der tabelle mit dem obigen code als grundlage um???





VIELEN VIELEN DANK!!! :)

gruß nixxi

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: