Para empezar a usar FPDF descargamos la librería desde aquí, y la descomprimimos dentro de una carpeta del servidor web. Una vez hecho esto vamos a proceder a analizar un ejemplo muy sencillo:
require ('fpdf.php');
$pdf->new FPDF();
$pdf->AddPage();
$this->SetFont('Arial','B',23);
$this->setXY(75,45);
$this->Write(10,'Prueba de Generación de un archivo PDF desde FPDF');
$this->Image('imagen.jpg',102,145,80);
$pdf->Output('ejemplo.pdf','D');
En la primera línea (require ('fpdf.php')) estamos incluyendo el archivo de la clase, después ($pdf->new FPDF()) llamamos al constructor para crear un objeto de la clase FPDF, que llamaremos $pdf.
En la siguiente línea ($pdf->AddPage()) llamamos al método AddPage para añadir una página al PDF, a continuación ($this->SetFont('Arial','B',23)) procedemos a configurar la tipografía que vamos a utilizar en el texto, en este caso Arial tamaño 23 y en negrita (B=Bold).
Después ($this->setXY(75,45)) le decimos donde posicionar el cursor cuando empiece a escribir (coordenadas 75,45), y escribimos una línea de prueba ($this->Write(10,'Prueba de Generación de un archivo PDF desde FPDF')).
Para finalizar añadimos una imagen ($this->Image('imagen.jpg',102,145,80)) en nuestro documento de prueba, y generamos el archivo de salida llamando al método Output ($pdf->Output('ejemplo.pdf','D')).
Se pueden hacer muchas cosas más (este ha sido un ejemplo muy sencillo), si queréis profundizar más podéis consultar el manual completo en su página web.
Un saludo y a generar PDF's se ha dicho ;)

multicell
tengo problema con la multicell al pasar la pagina, ya que no me pinta la linea inferior sino que continua en la siguiente hoja.....como hago para corregir esto??????
fecha con fpdf y php
hola a todos como estan, pasa que estoy trabajando con la libreria fpdf en php y resulta que tengo que insertar una fecha que se actualize automatcamente, algo parecido a la fecha que insertamos con javascript en una pagina normar del php , pero el problema es que no lo permite, quisiera saver si esto es posible con la libreria fpdf y si es posible, que alguien me ayude, por favor, se lo agradecería inmensamente,, chaoss espero respuestas
como hacer que un acento se imprima y no salgan caracteres raros
$pdf->Cell(0,10,'Imprimiendo linea numero '.$i,0,1);
esta linea se debería imprimir bien, pero no es así
acentos
$pdf->Cell(195,5,utf8_decode('Médico Patólogo'),0,0,'C',false);
al colocar utf8_decode sobre el texto q deseas mostrar hace la conversion al tipo d codificacion, espero q te sirva, saludos
Ayuda con un informe en pdf
Hola a todos:
Espero me puedan ayudar, soy algo novato en esto.
Estoy trabajando en un proyecto escolar y necesito generar un pdf con los datos de una tabla. La idea es que cada registro que lea de la tabla se presente en una nueva hoja del documento, para lo cual en el ciclo de lectura agrego una pagina con Addpage() pero unicamente me genera la primera hoja.
Por sua ayuda mil gracias.
tengo el mismo problema
Saludos.
Tengo la misma duda que Cesar ,, debo mostrar con FPDF los registros en cada pagina desde una consulta, he buscado pero no me resulta.
Alguien podía ayudarme?
AYUDA URGENTE CON FPDF!!!
Hola, tengo una aplicacion en php con FPDF. y no me imprime las boletas a una impresora matriz de punto boletera es la sewo adp-400.!!!
Probe la impresora desde windows e imprime bien.
Necesito la ayuda urgente..
gracias
Mauricio
.doc a pdf en php
Hola, tengo una aplicacion que permite generar PDF desde un archivo de texto adjuntado por el usuario, funciona correctamente pero con los archivos .doc presenta conflictos con la codificacion de carateres, se imprime el contenido del documento pero agrega una enorme cantidad de caracteras especiales...alguna sugerencia?
estoy investigando acerca de otra clase TCPDF que permite la codificion de UTF-8, pero la aplicacion funciona mediante FPDF.-
muchas gracias...espero tu respuesta!
utf8_encode
Hola Juan
¿Has probado a hacer un utf8_encode con los datos que lees del doc antes de pasarlos al pdf?
Un saludo
Hola ya encontre una solucion
Hola ya encontre una solucion para el caso de las tablas con columnas que se llevan mas de una fila. Miren el codigo de este sitio. Buen provecho
http://www.fpdf.org/en/script/script3.php
A ver si me ayudan
Como puedo generar un reporte fpdf en php para mostrarlo dentro de una pagina web, por favor ayúdenme que es para un proyecto
FPDF con ORACLE
como puedo generar un pdf con la Base de Datos Oracle, he buscado pero casi no consigo, solo en MySql y PostgreSql
por favor!!!! help me!!!
Impresion con FPDF
Necesito ayuda en la impresion de facturas preimpresas utilizando fpdf. El problema consiste en que configuro para imprimir en una impresora y cuando lo pruebo desde otra distinta(marca y modelo)la impresion sale corrida. Uso conf. pagina A4. Por favor cualquier ayuda sera bienvenida. Desde ya muchas gracias!!!
Buenas noches, tengo un
Buenas noches,
tengo un problema, como hago para que en la librería fpdf me genere varios reportes sobre un mismo registro... debido a que me carga solo uno y en mi base de datos tengo varios registros sobre ese mismo nro. de historia....!!!
si alguien me podría ayudar
aquí les dejo el código
<?php
require('fpdf/fpdf.php');
class PDF extends FPDF
{
//Cargar los datos
function LoadData($mysql_query)
{
/*
//Leer las líneas del fichero
$lines=file($file);
$data=array();
foreach($lines as $line)
$data[]=explode(';',chop($line));
return $data;
*/
$VarHistoria=$mysql_query;
$conn = mysql_connect("localhost","root","");
mysql_select_db("historia_clinica",$conn);
$mysql_query = "SELECT
paciente.numhist as numhist,
paciente.nompac as nompac,
paciente.edadpac as edadpac,
nota_egreso.fecha_r as fecha_r,
nota_egreso.descgen as descgen,
nota_egreso.descefe as descefe,
nota_egreso.descrxt as descrxt,
nota_egreso.descelec as descelec,
nota_egreso.desccard as desccard,
nota_egreso.concl as concl,
nota_egreso.aci as aci,
nota_egreso.rci as rci,
nota_egreso.cad as cad
FROM paciente
INNER JOIN nota_egreso ON nota_egreso.numhist = paciente.numhist where paciente.numhist = " . "'" . $VarHistoria ."'";
//echo $mysql_query;
$result = mysql_query($mysql_query, $conn);
//echo $mysql_query;
$data=array();
//$nroCampos=mysql_num_fields($result);
while($row = mysql_fetch_array($result)){
// $line='';
//for($i=0;$i<$nroCampos;$i++)
//$line=$line.$row[$i];
//$data[]=explode(';',chop($line));
$data[]=$row;
}
return $data;
}
//Tabla simple
function BasicTable($header,$data)
{
//Cabecera
foreach($header as $col)
$this->Cell(50,7,$col,1);
$this->Ln();
//Datos
/*foreach($data as $row)
{
foreach($row as $col)
$this->Cell(40,6,$col,1);
$this->Ln();
}*/
foreach($data as $col)
{
/*$tmp='';
if(strlen($col)>70){
$tmp=$tmp.substr($col,0,70)."\n".substr($col,71);
$col=$tmp;
}*/
$this->MultiCell(50,15,$col,1);
}
$this->Ln();
}
//Cabecera de página
function Header()
{
//Logo
$this->SetFont('Arial','B',10);
//Movernos a la derecha
$this->Image('imagenes para la web/logo2_1.jpg',5,8,36);
//Arial bold 15
// $this->SetFont('Arial','',12);
//Movernos a la derecha
//Salto de línea
$this->Ln(0);
}
//Pie de pagina
function Footer()
{
//Posición: a 1,5 cm del final
$this->SetY(-18);
//Arial italic 8
//$this->SetFont('Arial','I',8);
//Nmero de página
$this->Cell(0,1,$this->Image('imagenes para la web/banner5.png'),0,0,'L');
}
}
$pdf=new PDF('P','mm','letter');
$pdf->AliasNbPages();
$pdf->AddPage();
$data=$pdf->LoadData($HTTP_GET_VARS["nhit"]);
//--------------fecha-------------------------------------
$pdf->SetFont('Times','',12);
$pdf->SetTopMargin(40);
$fecha=substr($data[0][3],8,2)."-".substr($data[0][3],5,2)."-".substr($data[0][3],0,4);
$pdf->Cell(0,1,'Fecha:'." ".$fecha,0,1,'R');
$pdf->Ln(25);
//--------------titulo-------------------------------------
$pdf->SetFont('Times','B'.'U',16);
$pdf->Cell(0,1,'NOTA DE EGRESO',0,1,'C');
$pdf->Ln(10);
//-----------------datos del paciente----------------------
$pdf->SetFont('Times','',12);
$pdf->Cell(0,1,'N de Historia:'." ".$data[0][0],0,1,'L');
$pdf->Ln(4);
$pdf->Cell(0,1,'Nombre:'." ".$data[0][1],0,1,'L');
$pdf->Ln(4);
$pdf->Cell(0,1,'Edad:'." ".$data[0][2],0,1,'L');
$pdf->Ln(10);
//-------------------------------------------------------->
$pdf->MultiCell(190,5,'DIAGNOSTICO:'."\n".$data[0][4],0);
$pdf->Ln(5);
$pdf->Cell(190,0,'',1,1,'C');
$pdf->Ln(2);
$pdf->MultiCell(190,5,'EXAMEN FISICO DE EGRESO:'."\n".$data[0][5],0);
$pdf->Ln(5);
$pdf->Cell(190,0,'',1,1,'C');
$pdf->Ln(2);
$pdf->MultiCell(190,5,'RX DE TORAX:'."\n".$data[0][6],0);
$pdf->Ln(5);
$pdf->Cell(190,0,'',1,1,'C');
$pdf->Ln(2);
$pdf->MultiCell(190,5,'ELECTROCARDIOGRAMA:'."\n".$data[0][7],0);
$pdf->Ln(5);
$pdf->Cell(190,0,'',1,1,'C');
$pdf->Ln(2);
$pdf->MultiCell(190,5,'ECOCARDIOGRAMA:'."\n".$data[0][8],0);
$pdf->Ln(5);
$pdf->Cell(190,0,'',1,1,'C');
$pdf->Ln(2);
$pdf->MultiCell(190,5,'CONCLUSION Y RECOMENDACION:'."\n".$data[0][9],0);
$pdf->Ln(5);
$pdf->Cell(190,0,'',1,1,'C');
$pdf->Ln(2);
$pdf->Ln(10);
//->nombre del medico
$pdf->SetFont('Times','',8);
$pdf->Cell(60,10,'RESIDENTE DE CARDIOLOGIA INFANTIL:',1,'C');
$pdf->Cell(70,10,'COORDINADORA DE AREA DE DIAGNOSTICO:',1,'C');
$pdf->Cell(60,10,'ADJUNTO A CARDIOLOGIA INFANTIL:',1,'C');
$pdf->Ln(10);
$pdf->Cell(60,20,''."\n".$data[0][20],1);
$pdf->Cell(70,20,''."\n ".$data[0][21],1);
$pdf->Cell(60,20,''."\n ".$data[0][21],1);
//$pdf->Cell(65,10,'Cama:'." ".$data[0][19],1);
$pdf->Ln(10);
$pdf->Output();
?>
Insertar imagen fpdf desde mysql con php
Hola.
Tengo un problema con FPDF. En una base de datos en un campo longtext tengo texto y también tengo la ruta de varias imágenes, en pantalla me pone el texto junto con las imágenes.
He probado de crear un pdf con fpdf y no se de que manera puedo traducir la ruta de la imagen en una imagen.
Ya que el comando image funciona para un campo en concreto pero no me funciona si la pongo dentro de un campo que contiene texto y también la ruta a la imagen cosa que si funciona con el explorador.
Espero haberme explicado.
Un saludo y gracias.
alguna novedad ??
hola miguel...
tengo la misma duda y problema que tu... has descubierto algo nuevo al respecto o como solucionarlo ?--
lo que he visto con FPDF es que permite insertar imagenes pero con rutas definidas, e imagenes con nombres definidos, pero al igual que tu, necesito que me muestre la imagen asociada a cada registro .. por ende.. si se modifica la imagen por parte de un usuario, se modifique automaticamente la imagen en el PDF que queremos crear...
gracias y exitos !
david.-
Posible solución
Tal vez os sirva este otro artículo que habla sobre como ocultar la url de las imágenes:
http://www.elrincondetolito.com/content/ocultar-la-url-de-nuestras-image...
Un saludo y suerte!
PORFA AYUDENME CON fpdfTABLE....
hola a todos veo que saben sobre esto de generar reportes con fpdf..yo estoy realizando una aplicacion con base de datos Postgres y necesito generar un pdf con datos extraidos de la Base de datos, para ello genero una tabla en el pdf con la clase fpdfTable sin embargo no puedo colocar los datos de la base de datos en cada celda de la tabla...noc como hacerlo alguien me podra ayudar????xfa xfa!..se lo agradeceria!:-)
Texto fuera de los margenes de la columna
HOLA A TODOS EN EL FORO!!!
SOY NOVATO EN ESTE SENTIDO, ESPERO ME PUEDAN AYUDAR, ES QUE ESTOY CREADO UN PDF CON 6 COLUMNAS PERO EL TEXTO DE LA COLUMNA 2 Y 3 SE SALE DE SUS MARGENES Y NO SE COMO HACERLE PARA SOLUCIONAR ESO, SE QUE EL MULTICELL TE INSERTA UN SALTO DE LINEA PERO SI LO HAGO ASI ME INSERTA UN SALTO DE LINEA A CADA COLUMNA Y PUES NO LO SOLUCIONO ASI, ALGUIEN ME PODRIA EXPLICAR COMO HACERLO, GRACIAS, AQUI LES DEJO MI CODIGO FUENTE.....
<?php
require('fpdf.php');
mysql_connect('localhost','root','123');
mysql_select_db('biblioteca');
$pdf=new FPDF('L');
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
$query="SELECT * from libros";
$registro = mysql_query($query);
$pdf->Text(13,10,'ID',1,0,'C');
$pdf->Text(35,10,'AUTOR',1,0,'C');
$pdf->Text(110,10,'TITULO',1,0,'C');
$pdf->Text(178,10,'No ADQUISICION',1,0,'C');
$pdf->Text(218,10,'CLASIFICACION',1,0,'C');
$pdf->Text(257,10,'ESTADO',1,0,'C');
while($row=mysql_fetch_array($registro,MYSQL_NUM)) {
$pdf->SetFont('Courier','B',10);
$pdf->Cell(10,10,$row[0],1,0,'C');
$pdf->Cell(45,10,$row[1],1,0,'L');
$pdf->Cell(110,10,$row[2],1,0,'L');
$pdf->Cell(40,10,$row[7],1,0,'L');
$pdf->Cell(40,10,$row[8],1,0,'L');
$pdf->Cell(20,10,$row[9],1,0,'L');
$pdf->Ln(10);
}
$pdf->Output();
?>
Ya supe como
Hoooolaa !! mira ya pude quitarle el salto de linea del final, solo es modificar la funcion del fpdf del multicell, en la ultima linea...
asi: $this->Cell($w,$h,substr($s,$j,$i-$j),$b,0,$align,$fill);
Se cambia un 2 por el 0 para el modo a continuar despues de insertar la celda =)
Lo unico es que ahora no me imprime bien las lineas =( me sale cortada la de la columna de menor numero de renglones
Bueno yo probe lo del
Bueno yo probe lo del multicell y no me funciono, tengo una columna que su contenido es mayor que el de otras celdas y necesito que se muestre la misma en la celda destinada para el, porque lo que me hace es que me sale encima del resto de las columnas de la misma fila, please help me
mismo problema
oye lograste solucionar eso? a mi me pasa lo mismo =( y ya no se que hacer !!
Ayuda con FPDF
He estado haciendo reportes con FPDF sin grandes problemas,ya que mis usuarios pueden acceder a llevarlos a Excel o Word y todo eso de MS, pero como en la vida hay pocas alegrias, mi usuario quiere imprimir datos en un formulario pre-impreso, y que visualice graficos.
Y aqui comienza mi problematica.
1) No he podido eliminar la cabercera "function Header()", ya que requiero el control completo de cada espacio, es decir, escribir desde la primera linea, conforme al formato que tiene el formulario.
2) El otro drama, es poder generar un grafico en PDF en segunda o tercera pagina, ya que las primeras muestran los datos con los cuales se generara el famoso grafico. Lo mas chistoso, es que saco el grafico y muestra los datos bien, saco los datos y mustra bien el grafico, pero los dos juntos nada. He buscado varias alternativas, pero el FPDF solo acepta imagenes tales como png, jpg,etc.
Cualquier ayuda es bien agradecida..... y si se puede ... con un ejemplo ... basico por supuesto
He estado tratando de guardar
He estado tratando de guardar y luego recuperar un documento en formato pdf desde una bd Mysql y los resultados que he obtenido no han sido del todo satisfactorio. Conoces algun codigo que haga eso ??
Blob
Para guardar un pdf en una base de datos MySQL deberás meterlo en un campo del tipo "blob".
Aquí te dejo un enlace en el que explican como manejar campos blob desde PHP:
http://www.programacion.com/php/articulo/datos_blob/
Un saludo, y espero que te sea de utilidad.
mostrar una imagen
Se puede poner una imagen de la siguiente manera, creas una pagina php la cual reciba como paramentro el id del row en el cual esta la imagen, o sea este solo mostrara la imagen. y en fpdf insertas la imagen haciendo referencia a la pagina.
Ejemplo mira este que te pega un codigo de barra dinamico de por alla de casa del diantre:
$pdf->Image('http://www.mribti.com/barcode/image.php?code=0123456789&style=68&type=I25&width=1000&height=300&xres=2&font=5',40,40,200,50,'png');
ahi te aparece una imagen en tu pdf.
Me anime y te pongo algo rapido abajo.
$pdf->Image('imagen.php?idproducto=5687',40,40,200,50,'png');
imagen.php tendria:
{
$id = $_GET["idproducto"];
//consulta a la db donde retornas la imagen que corresponda al $id
$image = $myrow['image'];
header("Content-type: image/jpeg");
print $image;
}
html + php + pdf
Hola,
tengo un formulario en html y pasa los datos a una pagina php en la que realiza operaciones matematicas, con los resultados de esta pagina quiero crear un pdf de 15 paginas. En el pdf se incluyen graficas y tablas. Ahora los datos los presento en pantalla con , pero me gustaria que se generara un fichero pdf. He probado con fpdf, pero no se como hacer que cada tabla me salga en un página. ¿ Es posible recoger la informacion en html y mandarla directamente a fpdf?
Un saludo
Pincho
HTML -> PDF
Echa un vistazo a estos 2 scripts que pasan directamente de html a pdf:
http://tufat.com/s_html2ps_html2pdf.htm
http://www.digitaljunkies.ca/dompdf/index.php
Un saludo y espero que te sirva
fpdf + Cell y Multicell
Que tal buen día a todos, requiero hacer una tabla con datos de una base de datos, el problema es que una de las columnas que tengo requiero que sea un multicell para que me la haga en varias filas, eh logrado poner las primeras dos columnas y cuando pongo la tercera me lo imprime sobre la segunda y hace que la columna se pinte toda de negro además que como saber cuantas filas tiene la segunda columna (El multicell) para así poder asignar el numero filas a todas las columnas (Cell).
Alguien podría ayudarme, lo que requiero es de este forma:
Titulo 1 Titulo 2 Titulo 3 Titulo 4
Datos1 Datos1 Datos1 Datos1
Datos1
Datos2 Datos2 Datos2 Datos2
Datos3 Datos3 Datos3 Datos3
Datos3
Datos3
Tengo el siguiente código:
<?php
require('fpdf.php');
require("Connections/conex.php");
class PDF extends FPDF
{
//Cabecera de página
function Header()
{
$fecha = date("d/m/Y");
$this->SetFont('Arial','',9);
$this->Cell(510,10,'Fecha: '.$fecha,0,0,'C');
$this->Image('Header2.PNG',10,20,280);
$this->Ln(40);
}
//Pie de página
function Footer()
{
//Posición: a 1,5 cm del final
$this->SetY(-15);
//Arial italic 8
$this->SetFont('Arial','I',8);
//Número de página
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}
//Creación del objeto de la clase heredada
$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddFont('ArialN','','ArialN.php');
$pdf->AddPage();
$pdf->SetFont('ArialN','',10);
$sql = "SELECT Numero, Nombre, imp_pesos, imp_dol, tot_pesos, fecha_apertura, fecha_adjudicado FROM Licitacion where Vigente = 0 ORDER BY Ubicacion DESC, Numero";
$r = mysql_query($sql);
while ($row = mysql_fetch_array($r))
{
$Num = $row['Numero'];
$Nom = $row['Nombre'];
$Imp_pesos = $row['imp_pesos'];
$pdf->Cell(25,6,$Num,1,'L',1);
$pdf->MultiCell(68,6,$Nom,1,'L',1);
$pdf->Cell(25,6,$Imp_pesos,1,'L',0);
$pdf->Ln(0);
}
$pdf->Output();
?>
Re: fpdf + Cell y Multicell
Hola Víctor
He estado revisando tu código y he visto un par de cosillas:
Espero haberte ayudado, un saludo.
Multicell y sus saltos de lineas
Eso es correcto al colocar el multicell en la ultima columna de la tabla, el salto de linea se normaliza y la fila no se altera. Es decir se imprime todo en una sola linea. Pero... si deseo tener 2 columnas con multicell en posicione distintas. Como podría solucionarlo???
pregunta
como hago?
cuando quiero visualizar un pdf de una consulta en php me sale este error.
FPDF error: Could not include font metric file
que hice mal?
gracias por la ayuda
Falta la fuente
Pues ese error parece que te lo da por que te falta la fuente que estas usando, prueba a copiarla dentro de la carpeta fonts y mira a ver si hay suerte.
Un saludo.
ayudasssssssssss
Hola...
Estoy generando reportesd desde php a pdf con la libreria fpdf, pero tengo un problemilla...
Necesito mostrar una imagen que esta almacenada en la bd en fpdf, he intentado con una consulta pero me muestra la imagen embasurada... Como hago?????????????
Re: ayudassssssssssssssss
Yo te recomendaría que no guardaras imágenes en la base de datos...guarda la ruta en donde se encuentra la imagen y te ahorraras muchos quebraderos de cabeza, y sobre todo mejorará muchísimo el rendimiento de la base de datos.
Además yo creo que fpdf no permite leer datos blob de la base de datos, lo que tendrías que hacer sería hacer una copia temporal de las imágenes desde PHP y llamarla desde el fpdf....luego después borramos el archivo con la imagen y a correr. Como ves es un trabajo muy enrevesado para hacer algo que de la otra forma es sencillísimo.
Un saludo y espero haberte ayudado
duda...
hola tolito....
pero que pasa si la imagen a la que haces referencia, donde dices que es mejor guardar la ruta... ej:c:/imagenes/imagen1.jpg.. VARIA ??... es decir.. es una imagen que es cargada por algun usuario en la bases de datos, y por ende puede cambiar en cualquier minuto ?...
me explico.. en mi caso, tengo una base de datos en SQL con los siguientes campos "nombre", "apellido", "imagenusuario"... esta ultima, es una imagen que el usuario puede cambiar cuando guste... (sin mencionar que son varios los usuarios)... por ende... lo que necesito, es que me asocie la imagen del usuario de acuerdo al nomnre y apellido de este.. he ocupado FPDF y no tengo inconvenientes en mostrar el nombre y apellido, pero no se como hacer para ue me muestre la imagen ... sabes como hacerlo ? me podrias guiar ?
gracias y espero me ayudes.
EXITOS !!
david.-
Posible Solución
En tu otro comentario creo que te he respondido a la pregunta...echa un vistazo a esta url:
http://www.elrincondetolito.com/content/ocultar-la-url-de-nuestras-image...
Un saludo!
Problema con MULTICELL
Hola, necesito saber cual es el tamaña que tendrá mi multicell antes de imprimirlo para organizar la informacion en mi pdf, es esto posible?, pues la informacion que introduzco en la multicell es dinámica.
Saludos y gracias.
Escribir un nuevo comentario