Foros del Web » Programando para Internet » PHP »

salvar como pdf

Estas en el tema de salvar como pdf en el foro de PHP en Foros del Web. hola a todos, tengo una pagina webs, que muestra resultados de consultas a los cuales le aplico estilos (CSS), resulta que tengo ponerle un boton ...
  #1 (permalink)  
Antiguo 03/02/2011, 11:41
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
salvar como pdf

hola a todos, tengo una pagina webs, que muestra resultados de consultas a los cuales le aplico estilos (CSS), resulta que tengo ponerle un boton que diga "version PDF" y me cree el pdf de esa pagina...
alguna idea, eh escuchar de html2pdf, pero los ejmplos que he visto
son muy simples, ej.
$content =
'<html>
<body>
.......
</body>
</html>';
$html2pdf = new HTML2PDF('P','A4','es');
$html2pdf->WriteHTML($content);
$html2pdf->Output('exemple.pdf');

si quisiera en el body poner cosas como
<?
php include("algo.php");
mysql_query("select x form tbl where 1");
.....

? >

como lo haría ?
algun ejemplo que incluya estas situaciones
  #2 (permalink)  
Antiguo 03/02/2011, 12:23
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: salvar como pdf

En vez del html2pdf te recomendaria dompdf, es más potente pues puede pasar a pdf incluso tablas complejas (con colspan y todo) así como uso de hojas de estilo. Lo único es que es muy estricto y si tienes un error en el html o en el css falla. Pero después de todo es deber de todo desarrollador crear un html correcto, ¿o no?
  #3 (permalink)  
Antiguo 03/02/2011, 12:26
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: salvar como pdf

hola ocp001a, gracias por la respuesta, me pasarías algun ejemplo que tenga cierto tipo de complejidad, como
<?php
include("archivo.php")
while($row = mysql_fetch_array())
{
?>
nombre <?php echo $row['nombre'];?>
edad<?php echo $row['edad'];?>
<?php
}
?>

gracias
  #4 (permalink)  
Antiguo 03/02/2011, 13:07
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: salvar como pdf

claro:


Código PHP:
Ver original
  1. require_once("dompdf/dompdf_config.inc.php");
  2.             $dompdf = new DOMPDF();
  3.             $html="<html>
  4.                 <head>
  5.                     <link rel=\"stylesheet\" type=\"text/css\" href=\"style_pdf.css\"/>
  6.                 <head>
  7.                 <body>
  8.             contenido de tu html, tan complicado como lo quieras, pero bien formado (etiquetas estandar, todas cerradas etc)
  9.                 </body>
  10.             </html>";
  11. //en este ejemplo indico una hoja de estilo aparte, especial para el pdf, pues esta no puede llevar los clasicos hacks para el ie
  12.             $dompdf->set_paper("letter", $orientation = "portrait");
  13.             $dompdf->load_html($html);
  14.             $dompdf->render();
  15.             $pdf = $dompdf->output();
  16.             file_put_contents("micarpeta/miarchivopdf.pdf", $pdf);
  #5 (permalink)  
Antiguo 03/02/2011, 13:12
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: salvar como pdf

anja, pero y si el contenido del body sea cargado de la bd, mediante consulta, ej
while($row = mysql_fetch_array())
{
?>
nombre <?php echo $row['nombre'];?>
edad<?php echo $row['edad'];?>
<?php
}
?>

como sería ?????
  #6 (permalink)  
Antiguo 03/02/2011, 13:20
Avatar de bullarobert  
Fecha de Ingreso: enero-2011
Mensajes: 31
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: salvar como pdf

aqui encontre un ejemplo:

Código PHP:
Ver original
  1. <?php
  2. $host = "localhost";
  3. $user = "root";
  4. $pass = "";
  5. $db =  "";
  6.  
  7. $connection = mysql_connect($host, $user, $pass) or die ("Imposible Conectar!");
  8.  
  9.     include( $filebase.'class.ezpdf.php' );
  10.     $pdf = new Cezpdf( 'a4', 'P' );  //A4 Portrait
  11.     $pdf -> ezSetCmMargins( 2, 1.5, 1, 1);
  12.     $pdf->selectFont( './fonts/Helvetica.afm' ); //selecciona font
  13.        
  14.    $var_rut=$_POST['var_rut'];
  15.    mysql_select_db($db) or die ("Imposible Conectar!");
  16.    $query = "SELECT a.rut_al,a.nombre_al,a.apellido_al,a.curso_al,c.nombre_ca,ac.nombre_as,p.nombre_pro,p.apellido_pro,n.certamen1_no,n.certamen2_no,n.certamen3_no
  17.             FROM alumno a, carrera c, notas n, asignatura ac, profesores p
  18.              WHERE a.rut_al=$var_rut and n.rut_al=$var_rut and a.id_ca=c.id_ca and ac.id_as=n.id_as and ac.rut_pro=p.rut_pro";
  19.    $result1 = mysql_query($query) or die ("Error En Consulta: $query. ".mysql_error());
  20.    
  21.    if (mysql_num_rows($result1) > 0)
  22.      {
  23.  
  24.       //Primero Agrego Los Ti­tulos al Arreglo
  25.            $aDatos[0][0]="Rut";
  26.            $aDatos[0][1]="Nombre";
  27.            $aDatos[0][2]="Apellido";
  28.            $aDatos[0][3]="Curso";
  29.            $aDatos[0][4]="Carrera";
  30.            $aDatos[0][5]="Asignatura";
  31.            $aDatos[0][6]="Nombre Profesor";
  32.            $aDatos[0][7]="Apellido Profesor";
  33.            $aDatos[0][8]="Certamen 1";
  34.            $aDatos[0][9]="Certamen 2";
  35.            $aDatos[0][10]="Certamen 3";
  36.        $i=1;
  37.        $v=16;
  38.       while($row = mysql_fetch_row($result1))
  39.       {
  40.         $aDatos[$i][0]=$row[0];
  41.         $aDatos[$i][1]=$row[1];
  42.         $aDatos[$i][2]=$row[2];
  43.         $aDatos[$i][3]=$row[3];
  44.         $aDatos[$i][4]=$row[4];
  45.         $aDatos[$i][5]=$row[5];
  46.         $aDatos[$i][6]=$row[6];
  47.         $aDatos[$i][7]=$row[7];
  48.         $aDatos[$i][8]=$row[8];
  49.         $aDatos[$i][9]=$row[9];
  50.         $aDatos[$i][10]=$row[10];
  51.        
  52.  
  53.         $pdf->addText(puntos_cm(8),puntos_cm(25),14,"Informe de Notas");
  54.        
  55.         $pdf->addText(puntos_cm(1),puntos_cm(23),10,"Rut:$row[0]");
  56.         $pdf->addText(puntos_cm(1),puntos_cm(22),10,"Nombre:$row[1]");
  57.         $pdf->addText(puntos_cm(1),puntos_cm(21),10,"Apellido:$row[2]");
  58.         $pdf->addText(puntos_cm(1),puntos_cm(20),10,"Curso:$row[3]");
  59.         $pdf->addText(puntos_cm(1),puntos_cm(19),10,"Carrera:$row[4]");
  60.        
  61.         $pdf->addText(puntos_cm(1),puntos_cm(17),10,"Asignatura");
  62.         $pdf->addText(puntos_cm(6.5),puntos_cm(17),10,"Profesor");
  63.         $pdf->addText(puntos_cm(9.5),puntos_cm(17),10,"Nota 1");
  64.         $pdf->addText(puntos_cm(11),puntos_cm(17),10,"Nota 2");
  65.         $pdf->addText(puntos_cm(12.5),puntos_cm(17),10,"Nota 3");
  66.         $pdf->addText(puntos_cm(1),puntos_cm($v),10,"$row[5]");
  67.         $pdf->addText(puntos_cm(5.5),puntos_cm($v),10,"$row[6]");
  68.         $pdf->addText(puntos_cm(7),puntos_cm($v),10,"$row[7]");
  69.         $pdf->addText(puntos_cm(10),puntos_cm($v),10,"$row[8]");
  70.         $pdf->addText(puntos_cm(11.5),puntos_cm($v),10,"$row[9]");
  71.         $pdf->addText(puntos_cm(13),puntos_cm($v),10,"$row[10]");
  72.    
  73.         $i++;
  74.         $v--;
  75.       }
  76.  
  77. $pdf->eztable($data);
  78. $pdf->ezStream();
  79. }
  80.  
  81. mysql_free_result($result1);
  82. mysql_close($connection);  
  83. }
  84. ?>


y al final del codigo pones esto

Código PHP:
Ver original
  1. <?PHP
  2. function puntos_cm ($medida, $resolucion=72)
  3. {
  4. /*Para trabajar más cómodos con centímetros, creamos una función
  5.   que nos pasa las medidas en centímetros a puntos (todas las medidas
  6.   en PDF se expresan en puntos, cada punto es aproximadamente la 1/72
  7.   parte de una pulgada). A la función le pasamos dos parámetros:
  8.   la '$medida' que estará en centímetros y la '$resolucion', al que
  9.   por defecto le asignaremos '72' (72 puntos por pulgada).
  10. */  
  11.    //// 2.54 cm / pulgada
  12.    return ($medida/(2.54))*$resolucion;
  13. }
  14. ?>
  #7 (permalink)  
Antiguo 03/02/2011, 13:24
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: salvar como pdf

Hombre, si puedes desplegar el contenido de la bd en pantalla mediante el echo, sólo agrega ese mismo contenido a la variable que contenga el html del ejemplo que mencioné.

Creo que soy el único que detesta abrir y cerrar etiquetas de php a cada instante, el codigo que tu pones arriba yo lo indicaría como
Código PHP:
Ver original
  1. <?php
  2. while($row = mysql_fetch_array($result)){
  3.              $body.="nombre $row[nombre] edad $row[edad]";
  4. }
  5.  
  6. $html="<html>
  7.                <head>
  8.                    <link rel=\"stylesheet\" type=\"text/css\" href=\"style_pdf.css\"/>
  9.                <head>
  10.                <body>
  11.                     $body
  12.                </body>
  13.            </html>";
  14. ?>
  #8 (permalink)  
Antiguo 03/02/2011, 13:31
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: salvar como pdf

muchas gracias bullarobert y ocp001a, pruebo y les comento, me parece que tengo con los 2 ejemplos, gracias a los 2
  #9 (permalink)  
Antiguo 04/02/2011, 07:40
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: salvar como pdf

y me da este error
Fatal error: Call to a member function get_cellmap()

tengo estas 2 declaraciones en mi dompdf.config.inc.php
define("DOMPDF_ENABLE_PHP", true);
define("DOMPDF_ENABLE_REMOTE", true);

pero con este codigo falla

require_once("includes/dompdf/dompdf_config.inc.php");

$dompdf = new DOMPDF();
$dompdf->load_html_file("http://localhost/SeleccionesCuyo/8/imprimir_cv.php");
$dompdf->render();
$dompdf->stream("prueba.pdf");

alguna idea
  #10 (permalink)  
Antiguo 04/02/2011, 10:19
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: salvar como pdf

Hola hace poco las personas de este foro me ayudaron con un problema similar puedes darle una lectura a mi post lo solucione y en la pagina esta el codigo de como lo hice, solo acomodalo a tu consulta o lo que necesites pasar a formato pdf. [URL="http://www.forosdelweb.com/f18/crear-pdf-consulta-mysql-con-varias-variables-php-879899/"]Aquí[/URL] esta la pagina.
  #11 (permalink)  
Antiguo 04/02/2011, 11:08
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: salvar como pdf

si gracias, ya yo logro crear mi pdf, para eso use dompdf, pero lo que no logro es que me muestre las imagenes, alguien sabe ???
  #12 (permalink)  
Antiguo 06/04/2011, 08:02
 
Fecha de Ingreso: abril-2011
Mensajes: 1
Antigüedad: 13 años
Puntos: 0
Respuesta: salvar como pdf

Cita:
Iniciado por iviamontes Ver Mensaje
si gracias, ya yo logro crear mi pdf, para eso use dompdf, pero lo que no logro es que me muestre las imagenes, alguien sabe ???
a mi ya me ocurrió antes ese problema con las imágenes, y resultó q la librería solo acepta formatos jpg, asi q ajuste mis imagenes y listo!
  #13 (permalink)  
Antiguo 06/04/2011, 09:16
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: salvar como pdf

si ya me había dado cuenta, gracias.

Etiquetas: pdf
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 22:36.