Posted in

Clase para generar PDF con Php

Ejemplo:

r $I;
var $U;
var $HREF;

function PDF($orientation='P',$unit='mm',$format='A4'){
//Llama al constructor de la clase padre
$this->FPDF($orientation,$unit,$format);
//Iniciación de variables
$this->B=0;
$this->I=0;
$this->U=0;
$this->HREF='';
}

function WriteHTML($html){
//Intérprete de HTML
$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
if($this->HREF)
$this->PutLink($this->HREF,$e);
else
$this->Write(5,$e);
}else{
//Etiqueta
if($e[0]=='/')
$this->CloseTag(strtoupper(substr($e,1)));
else{
//Extraer atributos
$a2=explode(' ',$e);
$tag=strtoupper(array_shift($a2));
$attr=array();
foreach($a2 as $v){
if(preg_match('/([^=]*)=["\']?([^"\']*)/',$v,$a3))
$attr[strtoupper($a3[1])]=$a3[2];
}
$this->OpenTag($tag,$attr);
}
}
}
}

function OpenTag($tag,$attr){
//Etiqueta de apertura
if($tag=='B' || $tag=='I' || $tag=='U')
$this->SetStyle($tag,true);
if($tag=='A')
$this->HREF=$attr['HREF'];
if($tag=='BR')
$this->Ln(5);
}

function CloseTag($tag){
//Etiqueta de cierre
if($tag=='B' || $tag=='I' || $tag=='U')
$this->SetStyle($tag,false);
if($tag=='A')
$this->HREF='';
}

function SetStyle($tag,$enable){
//Modificar estilo y escoger la fuente correspondiente
$this->$tag+=($enable ? 1 : -1);
$style='';
foreach(array('B','I','U') as $s){
if($this->$s>0)
$style.=$s;
}
$this->SetFont('',$style);
}

function PutLink($URL,$txt){
//Escribir un hiper-enlace
$this->SetTextColor(0,0,255);
$this->SetStyle('U',true);
$this->Write(5,$txt,$URL);
$this->SetStyle('U',false);
$this->SetTextColor(0);
}
}

$html_marca = "<br>" . $datosCharter['marca'];
$html_modelo = " <i>" . $datosCharter['modelo'] . "</i><br><br>";
$html = "<b>Tipo:</b> " . $tiposCharter[$datosCharter['id_tipo']] . "<br>";
$html .= "<b>Eslora:</b> " . $datosCharter['eslora'] . "<br>";
$html .= "<b>Precio:</b> desde " . $datosCharter['precio'] . "€<br>";
$html .= $datosCharter['texto_' . $lang] . "<br><br>";

//Creación del objeto de la clase heredada
$pdf = new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetCreator("The Med Cat Company");
$pdf->SetFont('Arial', 'B', 18);
$pdf->WriteHTML($html_marca);
$pdf->SetFont('Arial', '', 16);
$pdf->WriteHTML($html_modelo);
$pdf->SetFont('Arial', '', 12);
$textDestinacio = "";
for($a=0;$a<count($listRelations);$a++){
$textDestinacio .= ($a != count($listRelations)-1) ? $IdDest[$listRelations[$a]['id_destino']] . ", " : $IdDest[$listRelations[$a]['id_destino']];
}
$pdf->WriteHTML("<b>Destinos:</b> " . $textDestinacio . "<br>");
$pdf->WriteHTML($html);
for($e=0;$e<count($listImgs);$e++){
$pdf->Image('../img/dinamicas/charter/' . $listImgs[$e]['imagen'], null, null, 100);
}
$pdf->Output();

archivos necesarios
Web autor con ejemplos

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *


The reCAPTCHA verification period has expired. Please reload the page.