Hola,
He seguido el tutorial de David sobre breezingforms y pdf mediante fpdf.
Me quedo atascado cuando trato de insertar una imagen, según el tutorial 2 de fpdf.org. Mi código es:
require_once(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/libraries/fpdf/fpdf.php'); class PDF extends FPDF { // Cabecera de página function Header() { // Logo $this->Image('images/stories/diplomas/diploma-torreblanca12.png',10,8,33); } // Pie de página function Footer() { // Arial italic 8 $this->SetFont('Arial','I',8); } } $pdf=new PDF(); $pdf->AddPage(); $pdf->Write(4,utf8_decode("Hola")); //Close and output PDF document $pdf->Output(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/images/informe'.date('d-m-Y_H-i-s').'.pdf'); header('Location: administrator/components/com_breezingforms/images/informe'.date('d-m-Y_H-i-s').'.pdf');
En el foro de fpdf.org comentan si puede ser un problema de permisos.
¿Se os ocurre qué puede pasar?
URL del sitio: http://www.free-run.es
Hola Pedro, pero obtienes algún mensaje de error?? o simplemente no te aparece la imagen??
Saludos!
perdona, te he puesto todo el rollo excepto el mensaje
FPDF error: Can't open image file: /images/stories/diplomas/trozo.png
Hola Pedro, prueba a poner la ruta completa así:
$this->Image('/home/nombre-cuenta/public_html/images/stories/diplomas/diploma-torreblanca12.png',10,8,33);
Y cambia nombre-cuenta por el nombre de tu cuenta..
Saludos
perfecto, ahora sí me coge la imagen. Creo que había probado sin el "home".
Una duda más: quiero mostrar en el pdf el resultado de una consulta sobre la base de datos de joomla. Al inicio de la pieza tengo el código:
require_once(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/libraries/fpdf/fpdf.php'); $db = &JFactory::getDBO(); $query='select * from #__jos_CarrerasDiplomas where Carrera="torreblanca12"'; $db->setQuery($query); $result = $db->loadObject();
y en el punto del pdf en el que quiero que me inserte el texto, pongo:
$pdf->Write(4,utf8_decode("C.E.M. SALTARRIBES CERTIFICA QUE EL CORREDOR:")); $pdf->Ln(15); $pdf->Write(4,utf8_decode($result->Tiempo));
Pero no consigo que aparezca el dato $result->Tiempo.
ya lo tengo resuelto. Por si interesa a alguien, dejo el código de la pieza. El funcionamiento es:
1-El visitante rellena un formulario con el número de dorsal que llevaba en la carrera.
2-El formulario crea -mediante fpdf- un diploma en pdf, con la información de la carrera.
Para ello consulta la tabla "jos_CarrerasDiplomas", de donde saca el crono, la posición, categoría... etc.
require_once(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/libraries/fpdf/fpdf.php'); $dorsal = ff_getSubmit('dorsal'); $db = &JFactory::getDBO(); $query='select * from jos_CarrerasDiplomas where Dorsal='.$dorsal; $db->setQuery($query); $result = $db->loadObject(); class PDF extends FPDF { // Cabecera de página function Header() { // Logo $this->Image('/home/NOMBRECUENTA/public_html/images/stories/diplomas/diploma-torreblanca12.jpg',0,0,210); } // Pie de página function Footer() { } } $pdf=new PDF(); $pdf->AddPage(); $pdf->SetFont('Arial','',22); $pdf->SetTextColor(0, 0, 0); $pdf->SetY(210); $pdf->SetX(50); $pdf->Write(4,utf8_decode("DIPLOMA DE PARTICIPACIÓ")); $pdf->Ln(15); $pdf->SetFont('Arial','B',14); $pdf->Write(4,utf8_decode("C.E.M. SALTARRIBES CERTIFICA QUE EL CORREDOR:")); $pdf->Ln(11); $pdf->SetX(20); $pdf->Write(4,utf8_decode($result->NombreParticipante)); $pdf->SetFont('Arial','',13); $pdf->Ln(11); $pdf->Write(4,utf8_decode("AMB EL DORSAL NÚMERO: ")); $pdf->SetX(120); $pdf->Write(4,utf8_decode($result->Dorsal)); $pdf->Ln(8); $pdf->Write(4,utf8_decode("HA FINALITZAT LA CURSA EN UN TEMPS DE: ")); $pdf->SetX(120); $pdf->Write(4,utf8_decode(date("H:i:s",strtotime($result->Tiempo)) )); $pdf->Ln(8); $pdf->Write(4,utf8_decode("POSICIÓ GENERAL: ")); $pdf->SetX(120); $pdf->Write(4,utf8_decode($result->Pos)); $pdf->Ln(8); $pdf->Write(4,utf8_decode("POSICIÓ DE LA CATEGORIA (")); $pdf->Write(4,utf8_decode($result->Cat)); $pdf->Write(4,utf8_decode("): ")); $pdf->SetX(120); $pdf->Write(4,utf8_decode($result->PCat)); //Close and output PDF document $pdf->Output(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/images/informe'.date('d-m-Y_H-i-s').'.pdf'); header('Location: administrator/components/com_breezingforms/images/informe'.date('d-m-Y_H-i-s').'.pdf');
Un saludo,
P