hola amigos, estoy tratando de exportar un tablas a pdf con php, yo ocupo doompdf, pero la verdad es que me tirar un error cuando hay muchas tablas, como que se me "marea" un poco el codigo...
he buscado formas de hacerlo y encontre la alternativa de "R&OS" en las faq y en google, pero la verdad es que es bastante complicado, no soy novato pero es bastante engorroso el trabajo de exportacion..
ahora tambien tengo problemas en doompdf al incluir imagenes, con el codigo "$pdf -> image ('ruta,ancho,alto,etc');
existe alguna forma para exportar a alguno de los formatos mencionados en el titulo sin que sea un gran problema?
estoy tomando datos de mysql para lo cual con un poco de ingenio lo hago excelentemente con doompdf...
el error que me arroja es el siguiente
Código:
Fatal error: Uncaught exception 'DOMPDF_Internal_Exception' with message 'Frame not found in cellmap' in
C:\AppServ\www\rnm\includes\dompdf\include\cellmap.cls.php:237 Stack trace: #0
C:\AppServ\www\rnm\includes\dompdf\include\table_cell_frame_reflower.cls.php(66):
Cellmap->get_frame_position(Object(Table_Cell_Frame_Decorator)) #1
C:\AppServ\www\rnm\includes\dompdf\include\frame_decorator.cls.php(387): Table_Cell_Frame_Reflower->reflow() #2
C:\AppServ\www\rnm\includes\dompdf\include\table_row_frame_reflower.cls.php(70): Frame_Decorator->reflow() #3
C:\AppServ\www\rnm\includes\dompdf\include\frame_decorator.cls.php(387): Table_Row_Frame_Reflower->reflow() #4
C:\AppServ\www\rnm\includes\dompdf\include\table_frame_reflower.cls.php(468): Frame_Decorator->reflow() #5
C:\AppServ\www\rnm\includes\dompdf\include\frame_decorator.cls.php(387): Table_Frame_Reflower->reflow() #6
C:\AppServ\www\rnm\includes\dompdf\include\block_frame_reflower.cls.php(408): Frame_Decorator->reflow() #7
C:\AppServ\www\rnm\includes\dompdf\include\frame_d in C:\AppServ\www\rnm\includes\dompdf\include\cellmap.cls.php on line 237
y mi codigo es
Código PHP:
require_once("dompdf/dompdf_config.inc.php");
$html =
'
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="HTML Tidy for Linux/x86 (vers 11 February 2007), see www.w3.org" />
<title></title>
<style type="text/css">
<!--
#apDiv1 {
position:absolute;
left:157px;
top:120px;
width:39px;
height:20px;
z-index:1;
}
#apDiv2 {
position:absolute;
left:276px;
top:117px;
width:36px;
height:23px;
z-index:2;
}
#apDiv3 {
position:absolute;
left:55px;
top:118px;
width:44px;
height:21px;
z-index:3;
}
-->
</style>
</head>
<body>
';
//Requeridos
include '../req/config.inc.php';
$seniores = $_GET['seniores'];
$rut = $_GET['rut'];
$direccion = $_GET['direccion'];
$ciudad = $_GET['ciudad'];
$giro = $_GET['giro'];
$telefono = $_GET['telefono'];
$guia = $_GET['guia'];
$condiciones = $_GET['condiciones'];
$neto = $_GET['neto'];
$iva = $_GET['iva'];
$total = $_GET['total'];
//$dia
//$mes
//$anio
$query_folio_factura = mysql_query("SELECT * FROM config") or die (mysql_error());
$obtener_folio_factura = mysql_fetch_assoc($query_folio_factura);
$folio_factura1 = $obtener_folio_factura['config_factura'];
$folio_factura2=$folio_factura1 - 1;
function add_ceros($numero,$ceros) {
$order_diez = explode(".",$numero);
$dif_diez = $ceros - strlen($order_diez[0]);
for($m = 0 ;
$m < $dif_diez;
$m++)
{
@$insertar_ceros .= 0;
}
return $insertar_ceros .= $numero;
}
$folio_factura = add_ceros($folio_factura2,6);
$query_venta_id = mysql_query("SELECT * FROM ventas WHERE folio_factura = '$folio_factura'") or die (mysql_error());
$obtener_venta_id = mysql_fetch_assoc($query_venta_id);
$venta_id = $obtener_venta_id['venta_id'];
$query=mysql_query ("SELECT * FROM ventas_detalle WHERE venta_id='$venta_id'") or die (mysql_error());
;
*/
$html .='
<div id="apDiv1">$mes</div>
<div id="apDiv2">$ano</div>
<div id="apDiv3">$dia</div>
<br />
<br />
<br />
<br />
<br>
<br>
<br />
<br />
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="494" valign="top">
'.$seniores.'</td>
<td width="136" valign="top" align="center">
<p align="left"> '.$rut.'</div>
</td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="474" valign="top">
'.$direccion.'</td>
<td width="156" valign="top" align="center">
<p align="left">
'.$ciudad.'</div>
</td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="466" valign="top">
'.$giro.'</td>
<td width="164" valign="top" align="center">
<p align="left">
'.$telefono.' </div>
</td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="363" valign="top">
</td>
<td width="267" valign="top" align="center">
<p align="left">
</div>
</td>
</tr>
</table><br />
<br />
<br />
<br />
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="75" valign="top" height="700">
<div align="center"> </div>
</td>
<td width="380" valign="top">
<div align="center"> </div>
</td>
<td width="85" valign="top">
<div align="center"> </div>
</td>
<td width="90" valign="top" align="center">
<div align="center"> </div>
</td>
</tr>
</table><br />
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="300" valign="top"> </td>
<td width="145" valign="top">
<div align="center"> </div>
</td>
<td width="85" valign="top">
<p align="left"> </div>
</td>
<td width="90" valign="top" align="center">
<p align="left"> '.$neto.'</div>
</td>
</tr>
<tr>
<td width="300" valign="top"> </td>
<td width="145" valign="top">
<div align="center"> </div>
</td>
<td width="85" valign="top">
<div align="center"> </div>
</td>
<td width="90" valign="top" align="center">
<div align="center"></div>
</td>
</tr>
<tr>
<td width="300" valign="top"> </td>
<td width="145" valign="top">
<div align="center"> </div>
</td>
<td width="85" valign="top">
<p align="left"> </div>
</td>
<td width="90" valign="top" align="center">
<p align="left"> '.$iva.'</div>
</td>
</tr>
<tr>
<td width="300" valign="top"> </td>
<td width="145" valign="top">
<div align="center"> </div>
</td>
<td width="85" valign="top">
<div align="center"> </div>
</td>
<td width="90" valign="top" align="center">
<div align="center"></div>
</td>
</tr>
<tr>
<td width="300" valign="top"> </td>
<td width="145" valign="top">
<div align="center"> </div>
</td>
<td width="85" valign="top">
<div align="center"> </div>
</td>
<td width="90" valign="top" align="center">
<p align="left">'.$total.'</div>
</td>
</tr>
</table>
</body>
</html>
';
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("sample.pdf");
como pueden observar existen muchos espacios y varias cosas que no son "normales" a esta altura, como por ejemplo los <p align..> que estan a modo de prueba ya que pense que quizas los <div align..> no funcionaban, he hecho varias modificacaciones pero siempre obtengo el mismo error... la razon de las cosas mencionadas anteriormente es que es para imprimir datos sobre una factura de imprenta (no digital) y necesito que los datos vayan donde tienen que ir... si alguien puediera ayudarme por favor llevo semanas tratando de hacerlo y no consigo lograrlo :( y lo peor es que el tiempo para la entrega de mi sistema ya esta en contra.. ya presente mi beta y tengo 1 semana para terminar
prometo liberar mi codigo de fuente si logro sacar esto adelante ya que este foro me ha dado mucho y en muy poco tiempo...