R&OS: pdf class una librería muy potente con la cual se pueden generar archivos PDF utilizando PHP tiene entre sus muchas cualidades el soporte para incluir imágenes dinámicamente. Si aún no sabes como utilizar R&OS, puedes leer Generar PDF con PHP en el cual explicamos los aspectos básicos del uso de esta librería.
Insertando imágenes
La librería R&OS tiene una función llamada ezImage la cual permite incluir una imagen desde un archivo cuya sintaxis es la siguiente:
-
ezImage(image,[padding],[width],[resize],[justification])
En donde, image es la ruta de la imagen a incluir, padding es la separación entre el contenido y la imagen expresado en pixels, width es el ancho, resize es el tipo de redimensión a aplicarse (full, width, none), justification es la justificación de la imagen (center, left, right).
Luego si deseamos incluir una imagen llamada img.jpg, que no tenga margen de separación, de ancho 420 pixels y alineado a la izquierda. Finalmente imprimimos la fecha y hora de generación del archivo.
-
include('class.ezpdf.php');
-
$pdf =& new Cezpdf('a4');
-
$pdf->selectFont('fonts/courier.afm');
-
$pdf->ezText("<b>PDF con Imagenes en PHP</b>\n",20);
-
$pdf->ezText("Ejemplo de inclusión de imagenes en pdf\n\n",12);
-
$pdf->ezImage("img.jpg", 0, 420, 'none', 'left');
-
$pdf->ezText("<c:alink:http://unijimpe.net/>unijimpe</c:alink>");
-
$pdf->ezStream();
Nótese que primero hemos incluido el archivo class.ezpdf.php el cual nos permite hacer uso de las funciones para crear pdf, luego creamos un pdf con tamaño de papel A4, escribimos un texto luego en la línea 6 mostramos la imagen deseada. Al final del ejemplo hemos incluido un enlace, esto utilizando la propiedad c:link.
El resultado del ejemplo lo pueden ver en http://samples.unijimpe.net/pdf/pdfimg.php, además de ello les dejo los archivo fuente para que lo descarguen y pongan en práctica lo aprendido.
Posts Relacionados

Comentarios Total 60 comentarios
Publicado: 13/01/2008 2:43 pm
Buenas tardes unji, te hago una consulta, lo que estoy necesitando es convertir integramente paginas html a pdf, como veo que estas en tema, te topaste con alguna herramienta open source para linux que haga esto, y luego pueda ser llamada desde php?
Desde ya, muchas gracias por anticipado.
Saludos!
Fernando
Publicado: 22/01/2008 4:54 am
Hola unijimpe. Es impresionante como funciona la clase para los pdf, pero a mi el tema de las imágenes sin embargo no me funciona ni siquiera copiando y pegando el ejemplo, lógicamente poniendo las fuentes y la imagen en su sitio (supongo), por qué puede ser?. Gracias.
Publicado: 22/01/2008 9:41 pm
dpueyo, la verdad a mi siempre me ha funcionado de maravillas, es muy posible que no tengas activadas las librerías para manejo de imágenes en PHP. Si envías el error que te sale es muy posible que nuestros visitantes te puedan ayudar.
Publicado: 05/02/2008 1:06 pm
Por favor informacion hacerca de las imagenes ya que no puedo visualizarsu ejemplo de pdf cn imagnes en el servidor de mi pc …
Publicado: 07/02/2008 8:23 am
No he podido entrar antes a ver las respuestas y bueno, veo que a otro visitante más le pasa lo que a mi. Unijimpe, qué es eso activar las librerías de manejo de imágenes en PHP ¿?, yo tengo contratado un servidor virtual que permite MySQL y PHP y lo que hago es utilizarlo, pero la verdad es que de configuración no se casi nada. Gracias.
Publicado: 03/04/2008 1:32 pm
Mi problema es que no se como llamar una imagen pero no desde un url sino desde el mismo pc ya que el proyecto lo tengo en el localhost
Publicado: 07/04/2008 10:47 am
Hola unijimpe, tengo la siguiente pregunta, ¿cómo ingreso dos imágenes consecutivas en una sola fila?, ya que cuando inserto una la siguiente se va a la siguiente fila.
Publicado: 14/05/2008 6:23 am
Me han encantado los ejemplos!
Descubrí tu web buscando material de cómo pasar a pdf desde php y en seguida tuve que agregarla a mis marcadores.
Pero aunque crea que deba feilicitarte por la web este comentario lo hago para hacerte una consulta acerca de dichas librerías. ¿es posible editar el nombre del fichero de salida? es que por defecto me pone el nombre de la web.php en lugar del que quiero.
Muchas gracias por todo
Publicado: 20/05/2008 5:19 pm
Hola:
Quiero agradecer por este tipo de publciaciones, a quienes estamos empezando nos ayuda mucho.
Saludos,
Publicado: 19/06/2008 4:34 am
problemas con accentos solucionado con lo siguiente:
$tex = mb_convert_encoding($texto, “ISO-8859-1″, “UTF-8″);
Publicado: 24/07/2008 12:00 am
Estimado, del_dan su funcion para solucionar el problema de los acentos igual me solucionaria los problemas de las ñ. Trate de montar pero no resulta.
Gracias
Publicado: 18/08/2008 11:24 am
estoy suasndo uuntu 7.04 y los pdfs me salen en blanco con esta clase.
tengo instalado php5. cual sera el problema? agraceceria si alguien me puede responder.
Publicado: 26/08/2008 12:32 pm
tengo instalado php 5.1.2 en windows y me sale pura basura cuando quiero hacer un pdf, tengo que configurarle algo adicional o esa version no es compatible con cpdf? gracias de antemano
Publicado: 30/09/2008 10:58 am
roncas, es posible que dejes algun espacio en blanco en el HTML antes de activar el interprete PHP (<? o <?PHP) si hay un solo espacio o linea estas escribiendo html entonces ya no puedes generar pdf.. debe decirte que no se pueden modificar los header
Publicado: 30/09/2008 11:03 am
en cuanto a las imagenes.. me di cuenta que no muestra los archivos con extencion png (.png), o por lo menos en mi maquina.. sino en .jpg, lo probe y funciona.. de todas maneras estamos a la orden en loq ue pueda ayudar.. Saludos..!!
Publicado: 10/10/2008 2:47 am
Tengo una cadena de texto similar a la siguiente:
$cadena=”Hola, mundo”;
[...]
$pdf->ezText($cadena);
[...]
Esto hace que mi PDF muestre la cadena tal cual.
Si aplico strip_tags($cadena), el problema desaparece, pero información vital (enlaces, por ejemplo) desaparece igualmente.
¿Conoce alguien alguna otra solución?
Publicado: 16/10/2008 11:43 am
hola estoy utilizando tu librería, al parecer todo funciona bien, excepto las imagenes, cuando agrego la linea de las imagenes,
“ezImage(“img.jpg”, 0, 420, ‘none’, ‘left’);” me marca que el archivo esta dañado y no puede ser reparado, pero cuando quito esa linea todo funciona Ok, alguien sabe por que sucede esto? gracias.
Publicado: 03/11/2008 12:36 am
Alejandro tal vez es porque la imagen no existe, comprobaste que existiera?
Publicado: 03/11/2008 1:52 pm
Hola Amigos.!!
Tengo problemas con el código ya que al generar el formato PDF no me respeta los saltos de linea y escribe todo en el mismo renglón, encimando todo el texto.
Agradeceria su ayuda
Publicado: 05/01/2009 9:03 am
hola estoy relaizando un programa en php tengo sod dificultades ..
la primera quiero hacer una seleccion de varias opciones checkbox y que esto me quede almacenado en al base de datos.. por ejemplo dias que mas te gustan de la semana(apaercen todos y yo selecciono dos o tres) y que estos me quden guardados en la base de datos como lo hago y como debe estar ese campo en la tabla de la base de datos..
Publicado: 08/01/2009 6:29 am
hola a todos!!
Para aquellos que teneis problemas con la funcion EzImage para mostrar imagenes en el pdf, probar con la siguiente funcion. A mi me pasaba lo mismo y me ha funcionado!!
$pdf->addJpegFromFile(‘./images/ros.jpg’, posicion_x, posicion_y);
Suerte a todos!!
Publicado: 14/01/2009 11:25 pm
Muchas gracias!
He utilizado 3 de tus tutoriales para un proyecto q tengo q entregar de un dia pa otro.
Me has salvado!!!!
Publicado: 19/01/2009 7:12 pm
Gracias por el post, tengo una pregunta: es posible colocar texto sobre la imagen? como para crear certificados digitalmente.
Publicado: 04/02/2009 6:53 pm
Buenas noches quien me puede ayudar estoy generando report con ezpdf, trabajando localmente con la version de php5 y lo genera bien el report, pero cuando lo paso al server que tiene php4 no lo genera como lo muestra localmente!! es urgente es para mi proyecto de grado
Publicado: 05/02/2009 9:01 am
Hola a todos!!
Ante todo mi saludo cordial para todas las personas que hacen posible que este tipo de Sitios sigan en aumento en pro de ayudar sin lucrarse de la necesidad de conocimiento de los usuarios.
hasta ahora todo me ha sido muy util y sencillo, pero que… ¡¡¡nunca faltan!!! no he podido visualizar las imagenes!! agradezco la ayuda que me puedan brindar…
require_once(‘class.ezpdf.php’);
$pdf=new Cezpdf(‘LEGAL’);
$pdf->ezImage(‘index4_r1_c1.jpg’, ‘none’, 90, ‘none’, ‘center’);
$pdf->selectFont(‘fonts/Times-Roman.afm’);
$pdf->ezSetCmMargins(2,2,3,3);
…
Publicado: 06/04/2009 3:13 pm
hola…. excelente el tema… pero tengo una consulta….
el ejemplo dado ace referencia a un ARCHIVO DE IMAGEN pero que es de ruta fija (“img.jpg”)… es posible que la imagen resultante, dependa de un registro sql ??? (asi como los datos asociados)… gracias !!
Publicado: 06/04/2009 4:57 pm
hola.. soy yo.. el mismo del post anterior… jaja… solo queria aclarar, que al referirme a que sea una imágen dependiente, me refiero a que llame a la imágen del campo que tenga un registro determinado. por ejemplo, que si en mi base de datos tengo los campos “nombre”, “apellido”, “telefono”, “fotousuario”….
como hago para crear un pdf que me muestre los datos y foto de un usuario que tengo en la base de datos ?
espero haberme explicado bien..
gracias a todos !!!
Publicado: 15/04/2009 2:05 pm
Hola me da error cuando inserto mas de una imagen,¿alguien sabe por que? si solo meto una va bien a la segunda falla. Saludos
Publicado: 22/04/2009 9:38 pm
Antes que nada un saludo a todos
Un comentario como puedo generar una marca de agua, ejemplo como algunos textos “Copia”, “original”, etc.
saludos
Publicado: 24/04/2009 5:21 am
Esta clase me va de maravilla en Explorer pero NO FUNCIONA en FIREFOX. A que podria ser debido? Hay alguna solucion?
Publicado: 03/05/2009 9:51 pm
Hola,
Estoy utilizando esta clase, localmente me sale todo Ok, pero cuando lo subo al servidor (Hosting)todo el texto me sale en 1 sola línea y las tablas salen de un tamaño minúsculo.
¿Qué puede estar pasando?
Gracias,
Rene Plaz C.
Publicado: 05/05/2009 2:50 pm
Yo lo que quiero es poner una imagen y al lado el texto, pero no encuentro como, no se si alguien tenga la solucion, gracias
Publicado: 14/05/2009 9:35 am
Tengo el mismo problema de René Plaz
“…utilizando esta clase, localmente me sale todo Ok, pero cuando lo subo al servidor todo el texto me sale en 1 sola línea y las tablas salen de un tamaño minúsculo.”
Necesito una ayudita, por favor..
Publicado: 10/06/2009 1:06 am
Tengo problemas con el código ya que al generar el formato PDF no me respeta los saltos de linea y escribe todo en la misma linea…
necesito ayuda, porfavor.
Publicado: 22/06/2009 6:05 pm
Buenas
Para todos aquellos que les falle la llamada a ezimage, probad a cambiar el tamaño de la imagen (Ej: 72×82), probablemete sea ese el problema.
Saludos.
Publicado: 26/06/2009 5:33 pm
hola, pues me gusta esta clase, pero tengo un problema que no he podido resolver.
resulta que mis datos tiene un gran numero de letas y al mostrarlos en el pdf se ven en una sola linea.
como hago para insertar saltos de linea en mi testo.
probre con str_replace(” “,”",$texto); pero me cambia los espacios por esto”".
por favor si alguien sabe como resolver esto, agradeceria que me lo dijera.
Publicado: 26/06/2009 5:35 pm
esto funciona muy bien para insertar imagenes.
$pdf->addJpegFromFile(“logo.JPG”,0,0,595); //coloca la imagen
Publicado: 26/06/2009 5:39 pm
claro qeu es posible colocar imagen de fondo.
solo tienes que descargar la libreria class.backgroundpdf.php
crear una instancia.
ejemplo $pdf = new backgroundPDF(‘a4′, ‘portrait’, ‘image’, array(‘img’=>’fondo.jpg’))y listo.
y listo.
Publicado: 14/07/2009 4:09 pm
URGE AYUDA !!
Hola, alguien que pueda ayudarme, estoy trabajando con base de datos de MYSQL y tengo un campo que contiene TEXTO, LIGAS e IMAGENES, es un campo de noticias, si lo despliego en HTML todo sale bien, pero cuando lo paso a PDF no se como hacer para que esa imagen que esta dentro del campo $noticia se despliegue……..alguien puede ayudarme?…ya resolvi lo de las ligas, pero la imagen no tengo ni idea como hacerla funcionar.
Publicado: 14/07/2009 4:20 pm
MI CORREO ES reyna.vivero@cfe.gob.mx
Publicado: 28/07/2009 9:43 am
[...] http://blog.unijimpe.net/crear-pdf-con-imagenes-en-php/ [...]
Publicado: 17/09/2009 2:24 pm
como puedo traer una imagen de mysql a pdf, estoy usando este campo pero no me trae nada:
$pdf->addText(180, 300, 10, “”);
Publicado: 25/09/2009 4:56 am
hola, tengo un problema ocupo el ejemplo que posteaste… y no funciona me sale un error que dice: el archivo esta dañado y no puede repararse.. la imagen si existe (y ese es el problema) porke cuando pongo una imagen ke no existe funciona… pero lo importante es ke funcione con la imagen… gracias por su ayuda!
Publicado: 28/09/2009 2:30 pm
Nadie ha resuelto lo de la linea?????, es desesperante!!!!, espero resolverlo para ayudar a todos!!!, saludos
Publicado: 01/10/2009 5:24 pm
Hola!!! estoy tratando de incorporar en el pdf que genero mas de dos imagenes , empleo el siguiente codigo
$pdf->ezImage(“Gotica.JPG”, 5, 45, ‘none’, ‘left’);
$pdf->addJpegFromFile(“escudo.JPG”,480,730,20);
pero cuando inserto la siguiente linea
$pdf->ezImage(“escudo.JPG”, 0, 20, ‘none’, ‘left’);
me sale un eror que dice que el archivo PDF esta dañado y no pude repararse…lo mismo pasa si en vez de usar ezImage empleo addJpegFromFile
ahora he tratado de cambiar la ultima linea por la siguiente,
$pdf->addPngFromFile(“escudo.PNG”,480,730,20);
cuando lo hago, el pdf sale normal, solo que muestra unicamente las dos primeras imagenes y la ultima no sale… que puedo hacer??
estoy haciendo algo mal??, las imagenes miden menos de 72×82 pix…. existe alguna clase de restriccion en la cantidad de imagenes que se pueden meter en un pdf generado con php y estas clases (R&OS)?? ayuda urgente!!! porfavor!!!
gracias de antemano por la ayuda que puedan darme!!^^
Publicado: 10/10/2009 5:01 pm
Hola quisiera saber si es posible poner varias imágenes seguidas (una a la derecha de la otra) ya que el procedimiento $pdf->ezImage() automáticamente le agrega el intro (\n) y cuando pones varias imágenes las pone una debajo de la otra.
Un saludo buen blog.
Publicado: 04/11/2009 4:17 pm
[...] en: unijimpe Compartir Hide [...]
Publicado: 10/11/2009 11:56 am
Hola,
Muy bueno el post. Pero me parece que debería corregir porque el ejemplo copiado en un localhost o servidor da error. Con la solución de
$pdf->addJpegFromFile(”logo.JPG”,0,0,595); //coloca la imagen
Funciona pero estaria bueno, explicar mejor estas otras funciones.
Slds.
Andres
Publicado: 23/11/2009 5:07 pm
Hola para los que tengan problemas con este ejemplo y con el ejemplo que indica como hacer que una imagen se ponga como fondo en un documento solo basta con agregar ob_end_clean() antes de la instruccion $pdf->ezStream(); quedando el codigo de esta manera:
selectFont(‘fonts/courier.afm’);
$pdf->ezText(“PDF con Imagenes en PHP\n”,20);
$pdf->ezText(“Ejemplo de inclusión de imagenes en pdf\n\n”,12);
$pdf->ezImage(“img.jpg”, 0, 420, ‘none’, ‘left’);
$pdf->ezText(“Fecha: “.date(“d/m/Y”),10);
$pdf->ezText(“Hora: “.date(“H:i:s”),10);
$pdf->ezText(‘Fuente: blog.unijimpe.net’);
ob_end_clean();
$pdf->ezStream();
?>
Esto tambien resuelve el problema de “El archivo no empieza con %-PDF” espero que les sirva
Publicado: 24/11/2009 7:50 pm
Alguien a podido obtener una imagen que este guardada dentro de la Base de Datos e incluirla dentro de una tabla, esto es, para que cuando se saquen los datos del usuario muestre todos sus datos junto con una fotografia suya, lo he intentado pero no he tenido resultados favorables, de antemano gracias!
Publicado: 24/11/2009 9:47 pm
Neo X, gracias por tu colaboración, respecto a la pregunta que haces, para las imágenes es recomendable guardar solo el nombre del archivo de imagen y guardar la imagen en una carpeta, luego para mostrar la imagen lees de la base de datos el nombre del archivo y lo utilizas para mostrar la imagen.
Publicado: 03/12/2009 10:49 pm
Hola, gracias
unijimpe!
me has ayudado mucho
y Neo X es cierto con eso se soluciona lo de las imagenes
el
ob_end_clean();
antes del
$pdf->ezStream();
gracias!!!
Publicado: 03/12/2009 10:55 pm
ahora
como puedo hacer para poner una imagen y un texto al lado
que me salgan en una misma linea
¿se puede?
gracias otra vez
Publicado: 28/12/2009 10:43 am
Hola. tengo un problema, tengo una tabla de registros en mysql, quiero pasarlos a pdf, el primer campo correcponde a la direccion de una imagen, y lo que deseo hacer es que me imprima la lista entera incluyen la imagen, hasta el momento no lo he logrado, ya que cuando pongo el array del campo de imagenes me imprime solo la ruta y nombre de la imagen…
saludos
Publicado: 05/01/2010 10:28 am
Hola….
pues io sigo teniendo problemas con los acentos al generar los pdf..
ya intente usando la funcion que se menciona mas arriba pero no me sirve, los acentos aparecen como un rombo con un signo de interrogacion adentro
iv�n p�rez
ademas de eso, me sale el siguiente error:
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\softcredit\modules\cartera\controllers\admin\cartera.php:4384)
Filename: libraries/class.pdf.php
Line Number: 1916
y pues si quito esa linea de codigo ya no me marca el error..
alguien me puede ayudar?
Gracias
Publicado: 15/01/2010 3:09 pm
Al crear el pdf se puede insertar la imagen y escribir sobre ella, dejar la imagen como marca de agua o alguna justificacion que me deje insertar teto encima de la imagen?????
Saludos
Publicado: 15/01/2010 4:09 pm
ya lo solucione hay un post explicando eso mismo
Publicado: 15/01/2010 4:10 pm
aldo tu error se soluciona poniendo
ob_start(); // al inicio
ob_end_flush(); // al final
Saludos
Publicado: 18/01/2010 8:28 am
excelente funciona a la perfeccion compañero
Publicado: 11/02/2010 1:41 am
Saludos, de seguro la siguiente información les será de mucha utilidad para la mayoria, que hemos obtenidos muy buenas soluciones mediante este blog…La siguiente es que esta clase ezpdf, no trata imagenes *.png por lo tanto muchos deberán estar atentos ante cualquier situación parecida.