One of the nice things about PHP has to be its support for awide variety of different technologies. And one of the most overlookedextensions in PHP 4 is the PDFLib extension, which allows you todynamically construct PDF documents through your PHP scripts. Find outmore, inside.
Now, that was a very simple example - but PHP's PDF extension allows you to do a lot more than just write text to a page. Since a picture is worth a thousand words, consider this next example, which demonstrates the process of adding an image to your newly-minted PDF document.
<?php
// create handle for new PDF document
$pdf = pdf_new();
// open a file
pdf_open_file($pdf, "philosophy.pdf");
// start a new page (A4)
pdf_begin_page($pdf, 595, 842);
// get and use a font object
$arial = pdf_findfont($pdf, "Arial", "host", 1); pdf_setfont($pdf,
$arial, 10);
// print text
pdf_show_xy($pdf, "There are more things in heaven and earth, Horatio,",50, 750);
pdf_show_xy($pdf, "than are dreamt of in your philosophy", 50,730);
// add an image under the text
$image = pdf_open_image_file($pdf, "jpeg", "shakespeare.jpg");
pdf_place_image($pdf, $image, 50, 650, 0.25);
// end page
pdf_end_page($pdf);
// close and save file
pdf_close($pdf);
?>
Here's the PDF output:
Most of the magic here happens via the pdf_open_image_file() and pdf_place_image() functions. The first one accepts an image type - GIF, JPEG, TIFF or PNG - and file name as arguments, and returns an image handle, which may then be re-used multiple times in the document.
The image handle returned in the previous step can be used by the pdf_place_image() function, which actually takes care of positioning the image at a particular point on the page. The coordinates provided to this function (the second and third arguments) refer to the position of the lower left corner of the image, while the fourth argument specifies the scaling factor to use when displaying the image (a scaling factor of 1 will show the image at actual size, while a factor of 0.5 will reduce the image to half its size).