Avisos
Vaciar todo

Abrir pdf generado mediante Breezingforms  

 
Gustavo García
 Gustavo García
Estimable Member

Hola a to@s,

Necesitaría que el usuario al rellenar un formulario y dar enviar, de forma automatica, le salga un pdf en una nueva ventana con los datos del formulario, de tal forma que el usuario pueda guardar una copia del pdf.

He llegado a generar el pdf con el siguiente tutorial:

https://www.webempresa.com/blog/como-crear-informes-en-pdf-con-joomla-y-breezingforms.html

Me da lo mismo que el formulario se guarde o no, sólo me interesa que el usuario visualice los datos que ha rellenado en un pdf despues de pulsar "Enviar".

Gracias y saludos,

Citar
Respondido : 09/01/2012 11:45 am
Pablo Velasco
 Pablo Velasco
Illustrious Member

Hola,

Prueba a editar la pieza genera_pdf de la que se habla en el tutorial y al final del todo añade la siguiente línea de código para ver si te funciona:

header('Location: administrator/components/com_facileforms/images/informe'.date('d-m-Y_H-i-s').'.pdf'');
ResponderCitar
Respondido : 09/01/2012 11:57 am

Cursos Gratuitos WordPress

Gustavo García
 Gustavo García
Estimable Member

Hola,

Gracias por contestar. He probado lo que me has comentado y no hace nada. Envia los datos por mail pero no muestra el pdf. Este es el código:

require_once(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/libraries/fpdf/fpdf.php');

$pdf=new FPDF();

$pdf->AddPage();
$pdf->SetFont('Arial','',8);
$pdf->SetTextColor(73, 117, 172);

// create the message
$pdf->Write(4,utf8_decode( "Informe : " . $this->formrow->title.nl().nl()));
$pdf->Ln();
$pdf->Write(4,utf8_decode("Fecha de envío: " . $this->submitted.nl().nl()));
$pdf->Ln();
if (count($this->maildata)) {
	foreach ($this->maildata as $data) {
			$pdf->SetFont('Arial','B',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_TITLE] . ": "));
			$pdf->SetFont('Arial','',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_VALUE].nl()));
			$pdf->Ln();
	}
	
}


//Close and output PDF document
$pdf->Output(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf');
header('Location: administrator/components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf'');

He probado deshabilitando este código

$pdf->Output(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf');

y tampoco funciona.

Gracias de nuevo y saludos,

ResponderCitar
Respondido : 09/01/2012 12:23 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola Gustavo

Concatena la ruta completa a ver si te va el header, es decir :

header('Location: '.JPATH_ADMINISTRATOR.DS.'administrator/components/com_facileforms/images/informe'.date('d-m-Y_H-i-s').'.pdf'');

Asegúrate de que el archivo exista, esto lo puedes comprobar colocando directamente la url en el navegador.

Saludos.

ResponderCitar
Respondido : 09/01/2012 6:58 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Gustavo García
 Gustavo García
Estimable Member

Hola Jhon,

Gracias por contestar. He probado lo que me comentas del asiguiente forma:

require_once(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/libraries/fpdf/fpdf.php');

$pdf=new FPDF();

$pdf->AddPage();
$pdf->SetFont('Arial','',8);
$pdf->SetTextColor(73, 117, 172);

// create the message
$pdf->Write(4,utf8_decode( "Informe : " . $this->formrow->title.nl().nl()));
$pdf->Ln();
$pdf->Write(4,utf8_decode("Fecha de envío: " . $this->submitted.nl().nl()));
$pdf->Ln();
if (count($this->maildata)) {
	foreach ($this->maildata as $data) {
			$pdf->SetFont('Arial','B',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_TITLE] . ": "));
			$pdf->SetFont('Arial','',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_VALUE].nl()));
			$pdf->Ln();
	}
	
}


//Close and output PDF document
$pdf->Output(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf');
//header('Location: '.JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf'');

Y así, si que me genera el pdf en la ruta que indico, pero no lo abre en una nueva ventana para que lo pueda ver el usuario.
Sin embargo, si lo dejo así:

require_once(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/libraries/fpdf/fpdf.php');

$pdf=new FPDF();

$pdf->AddPage();
$pdf->SetFont('Arial','',8);
$pdf->SetTextColor(73, 117, 172);

// create the message
$pdf->Write(4,utf8_decode( "Informe : " . $this->formrow->title.nl().nl()));
$pdf->Ln();
$pdf->Write(4,utf8_decode("Fecha de envío: " . $this->submitted.nl().nl()));
$pdf->Ln();
if (count($this->maildata)) {
	foreach ($this->maildata as $data) {
			$pdf->SetFont('Arial','B',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_TITLE] . ": "));
			$pdf->SetFont('Arial','',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_VALUE].nl()));
			$pdf->Ln();
	}
	
}


//Close and output PDF document
$pdf->Output(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf');
header('Location: '.JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf'');

o deshabilitando este código:

$pdf->Output(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf');

No hace nada (ni me genera el pdf, ni me lo muestra en el navegador).

Gracias de nuevo y saludos.

ResponderCitar
Respondido : 10/01/2012 5:07 pm
Pablo Velasco
 Pablo Velasco
Illustrious Member

Hola,

He realizado una prueba con la generación del pdf y veo que me funciona correctamente la redirección al pdf creado. He utilizado el siguiente código para la pieza de Breezingforms genera_pdf:

require_once(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/libraries/fpdf/fpdf.php');

$pdf=new FPDF();

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

// create the message
$pdf->Write(4,utf8_decode( "Informe : " . $this->formrow->title.nl().nl()));
$pdf->Ln();
$pdf->Write(4,utf8_decode("Fecha de envío: " . $this->submitted.nl().nl()));
$pdf->Ln();
if (count($this->maildata)) {
	foreach ($this->maildata as $data) {
			$pdf->SetFont('Arial','B',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_TITLE] . ": "));
			$pdf->SetFont('Arial','',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_VALUE].nl()));
			$pdf->Ln();
	}
	
}


//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');

Prueba este código a ver si te funciona.

ResponderCitar
Respondido : 11/01/2012 1:17 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Gustavo García
 Gustavo García
Estimable Member

Hola,

Lo he probado y funciona ok. Una última cosillas mas: ¿Cual seria el codigo para que lo mostrara en una nueva pestaña o ventana del navegador? El equivalente a

target="_blank"

.

De nuevo muchisimas gracias por vuestra ayuda.

Saludos,

ResponderCitar
Respondido : 12/01/2012 2:58 pm
David Noguera
 David Noguera
Miembro Moderator

Hola Gustavo,

prueba con "target=_new"

Si no, tendrás que pulsar el botón derecho del ratón y decir que lo abra en una nueva pestaña..

Saludos

ResponderCitar
Respondido : 13/01/2012 10:27 am

wpdoctor-revisa-la-salud-de-tu-wordpress

Gustavo García
 Gustavo García
Estimable Member

Hola,

Perdón por tardar tanto en responder, pero no he podido antes. ¿En que parte del codigo iría "target=_new"? Por mas que he probado, no me funciona.

Gracias de nuevo y saludos.

ResponderCitar
Respondido : 18/01/2012 12:20 pm
David Noguera
 David Noguera
Miembro Moderator

Hola Gustavo,

en el último post entendí mal lo que querías hacer.. no se puede hacer que se abra la web en una nueva pestaña por que desde PHP no es posible hacer eso, podríamos hacer pruebas poniendo código Javascript en una página HTML, pero no en un PDF..

Saludos

ResponderCitar
Respondido : 18/01/2012 1:25 pm

Gustavo García
 Gustavo García
Estimable Member

Hola David,

Pues lo dejamos así, es decir, abriendo el pdf en la misma ventana.

Se puede cerrar el hilo.

Muchas gracias de nuevo y un saludo

ResponderCitar
Respondido : 19/01/2012 5:02 pm