Hola mrgenis,
1 Leer mi imagen (plantilla)
$im = imagecreatefromjpeg("ruta/plantilla.jpeg);
Si es de otro formato deberás cambiar al imagecreate corespondiente.
2 Crear una copia de trabajo (trabajo)
Esto se hace al final, ya que mientras tanto trabajás con la imagen en RAM usando el identificador $im
3 Colocar el texto en su respectivo lugar.
$unTexto = "Hola Mundo";
$negro = imagecolorallocate($im, 0, 0, 0);
// Reemplace la ruta por la de su propia fuente
$fuente = 'arial.ttf';
// Añadir el texto
imagettftext($im, 20, 0, 10, 20, $negro, $fuente, $unTexto);
Más opciones como ángulos, posiciones, etc en http://php.net//manual/es/function.imagettftext.php
4 Colocar la imagen en el PDF con dimensiones 10 x 8 cm.
Luego de cargada la biblioteca y de inicializado el PDF
// Image example with resizing
$pdf->Image('images/image_demo.jpg', 15, 140, 75, 113, 'JPG', 'http://www.tcpdf.org', '', true, 150, '', false, false, 1, false, false, false);
Acá hay un ejemplo de cómo se usa http://www.tcpdf.org/examples/example_009.phps y así se ve ese resultado http://www.tcpdf.org/examples/example_009.pdf
Como los PDF manejan la escala en centrímetros y la imagen se escala en píxeles, tendrás que calcular la relación según la resolución que maneje la bilbioteca para dejarla de 10x8. Una forma simple es poner una imagen de 100px, imprimirla y medirla: luego por regla de tres obtenés cuantos píxeles son 10cm y 8cm.
5 Liberar la copia de trabajo (destruir)
Hasta el paso 3 la imagen está en momoria. Para poder incluirla en el PDF tendrás que primero generar un archivo en disco:
imagejpg($im. "rutaTemporal/nombreDeArchivo.jpeg"); // Crea el archivo en el disco para ser referenciado en el PDF
imagedestroy($im); // libera ram
...
...
// Se crea el PDF
...
...
unlink( "rutaTemporal/nombreDeArchivo.jpeg"); // borra el archivo
6 Repetir desde el (2) en caso de existir mas.
Ponés todo el código en un bucle for
o while
para generar cada uno de los PDFs
Podrías de hecho poner todo el proceso en una función que reciba como parámetros el texto a poner y alguna otra cosa variable que tengas, de forma tal de tener dentro del bucle solo la llamada a una función... es lo mismo para hace mucho más legible el código!
bonus 7 Vas a tener problemas con los nombres de los archivos JPEG a generar, ya que si se repiten podrías pisar uno que toadvía está en eso. Para esto podrías usar la función tempnam() que crea un nombre de archivo garantizando que sea único en un directorio http://ar2.php.net/manual/es/function.tempnam.php
Saludos!
PD: por qué ponerle texto a la imagen en vez de ponerlo directamente en el PDF??? Salvo que tengas que superponer el texto a la imagen o hacer un efecto raro, te ahorrás un paso importante ya que no tendrías que cargar la imagen a memoria y procesarla....
Te ahorrarías el paso 3, la mitad del 5 y el problema de los nombres de archivo duplicados...