Create a PVF file which holds an image or PDF, and import the data from the PVF file. This avoids disk access and is especially useful when the same image or PDF is imported multiply. For examples, images which sit in a database don't have to be written and re-read from disk, but can be passed to PDFlib directly in memory. A similar technique can be used for loading other data such as fonts, ICC profiles, etc.
Download PHP Code Switch to Java Code Show Output PDF
/* $Id: starter_pvf.php,v 1.2 2009/08/04 11:19:07 rp Exp $
* PDFlib Virtual File system (PVF):
* Create a PVF file which holds an image or PDF, and import the data from the
* PVF file
*
* This avoids disk access and is especially useful when the same image or PDF
* is imported multiply. For examples, images which sit in a database don't
* have to be written and re-read from disk, but can be passed to PDFlib
* directly in memory. A similar technique can be used for loading other data
* such as fonts, ICC profiles, etc.
*
* Required software: PDFlib Lite/PDFlib/PDFlib+PDI/PPS 7
* Required data: image file
*/
/* This is where the data files are. Adjust as necessary. */
$searchpath = "../input";
$outfile = "";
$title = "PDFlib Virtual File System";
$imageData = "";
try {
$p = new pdflib();
$p->set_parameter("SearchPath", $searchpath);
/* This means we must check return values of load_font() etc. */
$p->set_parameter("errorpolicy", "return");
if ($p->begin_document($outfile, "") == 0)
throw new Exception("Error: " . $p->get_errmsg());
$p->set_info("Creator", "PDFlib Cookbook");
$p->set_info("Title", $title );
/* We just read some image data from a file; to really benefit
* from using PVF read the data from a Web site or a database instead
*/
$imageData = file_get_contents("../input/PDFlib-logo.tif");
$p->create_pvf("/pvf/image", $imageData, "");
/* Load the image from the PVF */
$image = $p->load_image("auto", "/pvf/image" , "");
if ($image == 0)
throw new Exception("Error: " . $p->get_errmsg());
/* Fit the image on page 1 */
$p->begin_page_ext(595, 842, "");
$p->fit_image($image, 350, 750, "");
$p->end_page_ext("");
/* Fit the image on page 2 */
$p->begin_page_ext(595, 842, "");
$p->fit_image($image, 350, 50, "");
$p->end_page_ext("");
/* Delete the virtual file to free the allocated memory */
$p->delete_pvf("/pvf/image");
$p->end_document("");
$buf = $p->get_buffer();
$len = strlen($buf);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=starter_pvf.pdf");
print $buf;
} catch (PDFlibException $e){
die("PDFlib exception occurred:\n" .
"[" . $e->get_errnum() . "] " . $e->get_apiname() .
": " . $e->get_errmsg() . "\n");
} catch (Exception $e) {
die($e->getMessage());
}
$p=0;
?>