Boleta en pdf

Necesito crear una boleta con los datos del registro que estoy modificando...(una cuota).. He buscado varias librerías y me gusto por lo cómodo de trabajar con ella la FPDF. Revise los tutoriales que tiene la página, pero no me aparece nada respecto a como extraer datos de una tablas y colocarlos en el pdf. Ademas las boletas generadas necesito guardarlas en una tabla como historial para consultas... Tiene información al respecto, ¿algún ejemplo?
Sabes de alguna otra librería como crystal report (ya vi el ágata, tiene una opción super genial para crear visualmente los informes pero no encuentro información para trabajarla y manipular los informes con php)... O alguna otra de pago...
Respuesta
1
La librería FPDF es muy buena, yo la utilizo mucho y en especial una que es basada en ella y es la pdftable (http://www.vanxuan.net/tool/pdftable/), en la cual yo armo un código de una tabla html y la envío a la librería fpdf y genera el archivo.
En cuanto a enviar la información a pdf es sencillo, es como si generaras una tabla en html y al final la envías a la librerías, algo así:
<?php
define('FPDF_FONTPATH','font/');
require('lib/pdftable.inc.php');
$host_db="localhost";
$user_db="root";
$passwd_db="idmatx";
$db="c";
$query="select * from resultado";
$var_tam_pagina='Letter'; //A3, A4, A5, Letter, Legal
$var_medida='mm';  //pt, mm, cm, in
$var_orientacion='P'; //P, L
$var_margen_izq=5;
$var_margen_sup=5;
$var_margen_der=5;
$var_auto_print=true;  //false: imprime automatico, false: pregunta impresora
$link=mysql_connect($host_db, $user_db, $passwd_db);
mysql_select_db($db, $link);
$result=mysql_query($query, $link);
$content="
<table border='1' cellpadding='0' cellspacing='0'>
";
while($row = mysql_fetch_array($result)){
 $content=$content."
<tr>
<td>$row[0]</td>
<td>$row[1]</td>
</tr>
";
}
$content=$content."
</table>
";
class Reporte extends PDFTable{
 function Header(){
  parent::Image('logo_pb.png',10,8,33);
  parent::SetFont('Arial','B',20);
  parent::Cell(0,10,'Title',0,0,'C');
  parent::Ln(20);
  $this->_makePageSize();
 }
 function Footer(){
  parent::SetY(-15);
  parent::SetFont('Arial','I',8);
  parent::Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
  $this->_makePageSize();
 }
 function AutoPrint($dialog=false){
  //Launch the print dialog or start printing immediately on the standard printer
  $param=($dialog ? 'true' : 'false');
  $script="print($param);";
  $this->IncludeJS($script);
 }
 function AutoPrintToPrinter($server, $printer, $dialog=false){
  //Print on a shared printer (requires at least Acrobat 6)
  $script = "var pp = getPrintParams();";
  if($dialog)
   $script .= "pp.interactive = pp.constants.interactionLevel.full;";
  else
   $script .= "pp.interactive = pp.constants.interactionLevel.automatic;";
  $script .= "pp.printerName = '\\\\\\\\".$server."\\\\".$printer."';";
  $script .= "print(pp);";
  $this->IncludeJS($script);
 } 
}
$pdf = new Reporte($var_orientacion, $var_medida, $var_tam_pagina);
$pdf->AliasNbPages();
$pdf->SetMargins($var_margen_izq, $var_margen_sup, $var_margen_der);
$pdf->AddPage();
$pdf->SetFont('Arial','',10);
$pdf->htmltable($content);
$pdf->Ln(2);
$pdf->htmltable($content);
$pdf->AutoPrint($var_auto_print);
$pdf->output('Reporte.pdf', 'I');
?>
Muchas gracias... lo ultimo... Tengo los siguiente datos que necesito llevar a la boleta:
Rut, nombre, apellido, fecha, cuota valorcuota, total...
En el proceso necesito que estos datos sean guardados en una tabla llamada boletasemitidas, y la idea es que ya sea por solicitud del cliente por ejemplo se consulte dicha tabla y pueda imprimir cualquiera de las boletas de ese cliente...
Espero se me entienda... Atenta a tus comentarios...
Puedes seguir la lógica del proceso tal como lo tengas definifo, me imagino sin tener conocimiento que seria:
1: Solicitud boleta
2: Registro boleta emitida (enviando los datos a la tabla con la estructura definida por ti)
3: Si se registra exitosamente se generación boleta de lo contrario no
4: Generación boleta
5: Entrega boleta
¿Me preguntas nuevamente?
No... sorry, lo que pasa es que actualice la página y se envío nuevamente la pregunta...
Realizare el proceso que me indicas y te comento... gracias...
ok.

1 respuesta más de otro experto

Respuesta
1
No realmente. Te recomiendo que visites la página de sourceforge que tiene muchísimos provectos de software gratuitos, a lo mejor encuentras uno que te pueda servir.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas