Foros del Web » Programando para Internet » PHP »

Error al abrir PDF creado con TCPDF

Estas en el tema de Error al abrir PDF creado con TCPDF en el foro de PHP en Foros del Web. Hola tengo un problema al abrir un documento en PDF creado con la libreria TCPDF. Todo funciona "al parecer" correctamente, salvo que cuando intento abrir ...
  #1 (permalink)  
Antiguo 19/04/2012, 03:29
 
Fecha de Ingreso: abril-2012
Ubicación: Valencia
Mensajes: 7
Antigüedad: 12 años
Puntos: 0
Pregunta Error al abrir PDF creado con TCPDF

Hola tengo un problema al abrir un documento en PDF creado con la libreria TCPDF. Todo funciona "al parecer" correctamente, salvo que cuando intento abrir el PDF con Adobe Reader X, salta un error diciendo:

Adobe Reader no pudo abrir el archivo 'documento_PDF.pdf' debido a que no es un tipo de archivo admitido o está dañado (por ejemplo, se envió como adjunto de correo electrónico y no se descodificó correctamente).

¿Alguien sabe que puede ser?

Adjunto el código PHP que utilizo:

$salida = ob_get_contents();
$salida = utf8_decode($salida);
ob_clean();

require_once('../../modulos/tcpdf/config/lang/spa.php');
require_once('../../modulos/tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true);

//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// add a page
$pdf->AddPage();

// set UTF-8 Unicode font
$pdf->SetFont('helvetica', '', 10);

// output the HTML content
$pdf->writeHTML($salida, true, 0, true, true);

// reset pointer to the last page
$pdf->lastPage();

//Close and output PDF document
$pdf->Output("Documento PDF para $usuario.pdf", 'D');


Gracias de antemano a todos los que haceis posible este foro!!

Un saludo
  #2 (permalink)  
Antiguo 19/04/2012, 05:40
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Error al abrir PDF creado con TCPDF

y que tiene $salida ? ¿No será que el html que le pasas tiene algún error, como por ejemplo tags mal cerrados? Que el navegador lo interprete no implica que al pasarlo a pdf la librería para convertirlo sepa que hacer.

Edito: por cierto en las Faqs de este foro hace tiempo que publiqué dos aportes con dos librerías diferentes para los pdfs.
Échales un ojo si quieres.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #3 (permalink)  
Antiguo 19/04/2012, 05:44
 
Fecha de Ingreso: abril-2012
Ubicación: Valencia
Mensajes: 7
Antigüedad: 12 años
Puntos: 0
Respuesta: Error al abrir PDF creado con TCPDF

ob_start();
$Contenido=new plantilla("web");
$Contenido->asigna_variables(array(
"razon_social" => "$razon_social",
"direccion" => "$direccion",
"cp" => "$CP",
"poblacion" => "$poblacion",
"provincia" => "$provincia",
"web" => "$web"
));

//$ContenidoString contiene nuestra plantilla, ya con las variables asignadas
$ContenidoString = $Contenido->muestra();
print "$ContenidoString";

print "<div align=\"center\"><br/>";
print "<form action=\"$PHP_SELF\" method=\"post\">";
print "<input type=\"submit\" name=\"pdf\" value=\"Imprimir PDF\" />";
print "</form></div>";


if ($_REQUEST['pdf']=="Imprimir PDF") {

$salida = ob_get_contents();
#$salida = utf8_decode($salida);
ob_clean();

require_once('../../modulos/tcpdf/config/tcpdf_config.php');
require_once('../../modulos/tcpdf/config/lang/spa.php');
require_once('../../modulos/tcpdf/tcpdf.php');

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// add a page
$pdf->AddPage();

// set font
$pdf->SetFont('dejavusans', '', 10);

// output the HTML content
$pdf->writeHTML($salida, true, 0, true, true);

// reset pointer to the last page
$pdf->lastPage();

//Close and output PDF document
$pdf->Output("Formulario Web para $usuario.pdf", 'D');

}


$salida contiene un código HTML creado a partir de una plantilla
  #4 (permalink)  
Antiguo 19/04/2012, 06:33
 
Fecha de Ingreso: marzo-2011
Mensajes: 88
Antigüedad: 13 años, 1 mes
Puntos: 17
Respuesta: Error al abrir PDF creado con TCPDF

a mi me han recomendado hoy en este foro esto:

http://www.pdfservices.net

y ya he terminado el sistema que necesitaba. por si te vale de algo a ti. estamos para compartir. un saludo
  #5 (permalink)  
Antiguo 19/04/2012, 08:00
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Error al abrir PDF creado con TCPDF

Cita:
Iniciado por follow Ver Mensaje
a mi me han recomendado hoy en este foro esto:

http://www.pdfservices.net

y ya he terminado el sistema que necesitaba. por si te vale de algo a ti. estamos para compartir. un saludo
pero su error no viene de la librería que use, sino que su variable $salida no tiene el html que formará el pdf. Yo no veo que en esa variable haya html... sino que pone el ob_get_contents();
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #6 (permalink)  
Antiguo 20/04/2012, 07:31
 
Fecha de Ingreso: abril-2012
Ubicación: Valencia
Mensajes: 7
Antigüedad: 12 años
Puntos: 0
Exclamación Respuesta: Error al abrir PDF creado con TCPDF

He conseguido abrir el PDF con un wordPad y el resultado es este:


<body>
<div id="contenedor"><div id="menu_sup">
<table border="0" width="100%" height="100%">
<tr>
<td><img src="../../imagenes/logo.png" width="343px" height="95px" /></td>
<td><a href="../../inicio.php"><img src="../../imagenes/home.png" width="30px" height="30px" alt="Inicio" /></a></td>
<td>Bienvenido/a <a href="../../modulos/datos_personales.php">prueba</a></td>
<td>&nbsp;&nbsp;</td>
<td><a href="../../salir.php">Cerrar sesi&oacute;n</a></td>
</tr>
</table>
</div><div id="contenido_max">%PDF-1.7
%âãÏÓ
8 0 obj
<< /Type /Page /Parent 1 0 R /LastModified (D:20120419101927+02'00') /Resources 2 0 R /MediaBox [0.000000 0.000000 595.276000 841.890000] /CropBox [0.000000 0.000000 595.276000 841.890000] /BleedBox [0.000000 0.000000 595.276000 841.890000] /TrimBox [0.000000 0.000000 595.276000 841.890000] /ArtBox [0.000000 0.000000 595.276000 841.890000] /Contents 9 0 R /Rotate 0 /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Annots [ 7 0 R ] /PZ 1 >>
endobj
9 0 obj
<</Filter /FlateDecode /Length 287>> stream
xœµSMoÂ0 ½çW¼#\Ò|ÔI{ÝHœØ–Ã$à2
•¨£šíß/íTQ*Ýpd%rúìûUp²"<æÁ÷X®Ã–ŸÏÙC4•Š‹ÚàvxpL žnQ6Ñ9t¯¬!®)&c±9²èÅŘì1¬Á ê°†ß_ô#*§Ù¥ÕºiÏÐ@
Wžiø€Cˆ*žhúj—RõÁeXŽ…ß–Û ¯p÷‹É«‘÷ž¿oÞ²/Ê|5¯áæUñ‹»×}O°[¨)¡žŒÍGYÏLZÃA¯à+Ê
ŽÅŠ“LMBP ×±‰Éâ"Å--Ûážÿ[›~»/ójÞ¢W:%ž’ªIÃujÓÀ¨þ0‰²Ñ®ø—ºjø7ÛïÓ
endstream
endobj
1 0 obj
<< /Type /Pages /Kids [ 8 0 R ] /Count 1 >>
endobj
3 0 obj
<</Type /Font /Subtype /Type1 /BaseFont /Helvetica /Name /F1 /Encoding /WinAnsiEncoding >>
endobj
5 0 obj
<</Type /Font /Subtype /Type1 /BaseFont /Helvetica-Bold /Name /F2 /Encoding /WinAnsiEncoding >>
endobj
6 0 obj
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Name /F3 /Encoding /WinAnsiEncoding >>
endobj
4 0 obj
<< /Type /XObject /Subtype /Form /FormType 1 /Filter /FlateDecode /BBox [0.000000 0.000000 595.276000 76.535433] /Matrix [1 0 0 1 0 0] /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2 5 0 R /F1 3 0 R >> >> /Length 169 >> stream
xϴ1
Â0…÷üŠ7ê/×^bׂº©ÙJ·bAt°Kÿ¾—B±*jà‘ä‘ïÝK±Ù3œ¥i!ž±‹†¬„é:‚P« .hZÝ:U¥ê)è¾ ï*y= =4WƧ7jnr]æ-y.
†'벜I;4+¬[Ä:=;h*¼)0‡uŸ¦+,yþO?œ9“³Wø*@‚%©ð
"lƒøÌ-í+NÿÎ~



¿Por qué puede ser? Ayuda por favor!

Etiquetas: adobe, pdf, reader, tcpdf
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:34.