function PDFLib_GRenderer($format = null, $orientation = 'landscape') { // Null size does not create a graphic. $this->styles = array(); $this->font = null; if (!is_null($format)) { $size = $this->_getFormat($format, $orientation); $this->width = $size[0]; $this->height = $size[1]; $this->pdf = pdf_new(); pdf_open_file($this->pdf, ''); pdf_begin_page($this->pdf, $this->width, $this->height); $this->font = pdf_findfont($this->pdf, 'Helvetica', 'builtin', 0); } }
function begin_page($title) { pdf_begin_page($this->pdf, $this->pw, $this->ph); pdf_setlinewidth($this->pdf, 1); $ttl = $title; if ($this->pg_num) { $this->pg_num++; $ttl .= ' #' . $this->pg_num; } else { $this->pg_num = 1; } pdf_add_bookmark($this->pdf, $ttl); pdf_setfont($this->pdf, $this->fonts['Courier'], 12); pdf_set_text_pos($this->pdf, $this->wmargin, $this->ph - $this->hmargin); $this->pg_title = $title; }
public function createPDF($fname) { $pdf = pdf_new(); pdf_open_file($pdf, ''); $image = pdf_load_image($pdf, "png", $fname, ""); $w = pdf_get_value($pdf, "imagewidth", $image); $h = pdf_get_value($pdf, "imageheight", $image); pdf_begin_page($pdf, $w * 2, $h * 2); pdf_place_image($pdf, $image, $w / 2, $h / 2, 1); pdf_end_page($pdf); pdf_close($pdf); $mybuf = PDF_get_buffer($pdf); $mylen = strlen($mybuf); header("Content-type: application/pdf"); header("Content-Length: {$mylen}"); header("Content-Disposition: inline; filename=chart.pdf"); print $mybuf; PDF_delete($pdf); unlink($fname); }
function next_page($height) { if ($this->_status == PDFLIB_STATUS_PAGE_STARTED) { pdf_end_page($this->pdf); } pdf_begin_page($this->pdf, mm2pt($this->media->width()), mm2pt($this->media->height())); // Calculate coordinate of the next page bottom edge $this->offset -= $height - $this->offset_delta; // Reset the "correction" offset to it normal value // Note: "correction" offset is an offset value required to avoid page breaking // in the middle of text boxes $this->offset_delta = 0; pdf_translate($this->pdf, 0, -$this->offset); parent::next_page($height); $this->_status = PDFLIB_STATUS_PAGE_STARTED; }
/** * Create the PDF canvas. * * Parameters available: * * 'page' Specify the page/paper format for the graph's page, available * formats are: A0, A1, A2, A3, A4, A5, A6, B5, letter, legal, ledger, * 11x17, cd_front, inlay, inlay_nosides * * 'align' Alignment of the graph on the page, available options are: * topleft, topcenter, topright, leftcenter, center, rightcenter, * leftbottom, centerbottom, rightbottom * * 'orientation' Specifies the paper orientation, default is 'portrait' and * 'landscape' is also supported. * * 'creator' The creator tag of the PDF/graph * * 'author' The author tag of the PDF/graph * * 'title' The title tag of the PDF/graph * * 'width' The width of the graph on the page * * 'height' The height of the graph on the page * * 'left' The left offset of the graph on the page * * 'top' The top offset of the graph on the page * * 'filename' The PDF file to open/add page to, using 'filename' requires * the commercial version of PDFlib (http://www.pdflib.com/), this has for * obvious ($ 450) reasons not been tested * * 'pdf' An existing PDFlib PDF document to add the page to * * 'add_page' (true/false) Used together with 'pdf', to specify whether the * canvas should add a new graph page (true) or create the graph on the * current page (false), default is 'true' * * The 'page' and 'width' & 'height' can be mutually omitted, if 'page' is * omitted the page is created using dimensions of width x height, and if * width and height are omitted the page dimensions are used for the graph. * * If 'pdf' is specified, 'filename', 'creator', 'author' and 'title' has no * effect. * * 'left' and 'top' are overridden by 'align' * * It is required either to specify 'width' & 'height' or 'page'. * * The PDF format/PDFlib has some limitations on the capabilities, which * means some functionality available using other canvass (fx. alpha * blending and gradient fills) are not supported with PDF (see Canvas.txt * in the docs/ folder for further details) * * @param array $param Parameter array */ function Image_Canvas_PDF($param) { if (isset($param['page'])) { switch (strtoupper($param['page'])) { case 'A0': $this->_pageWidth = 2380; $this->_pageHeight = 3368; break; case 'A1': $this->_pageWidth = 1684; $this->_pageHeight = 2380; break; case 'A2': $this->_pageWidth = 1190; $this->_pageHeight = 1684; break; case 'A3': $this->_pageWidth = 842; $this->_pageHeight = 1190; break; case 'A4': $this->_pageWidth = 595; $this->_pageHeight = 842; break; case 'A5': $this->_pageWidth = 421; $this->_pageHeight = 595; break; case 'A6': $this->_pageWidth = 297; $this->_pageHeight = 421; break; case 'B5': $this->_pageWidth = 501; $this->_pageHeight = 709; break; case 'LETTER': $this->_pageWidth = 612; $this->_pageHeight = 792; break; case 'LEGAL': $this->_pageWidth = 612; $this->_pageHeight = 1008; break; case 'LEDGER': $this->_pageWidth = 1224; $this->_pageHeight = 792; break; case '11X17': $this->_pageWidth = 792; $this->_pageHeight = 1224; break; case 'CD_FRONT': $this->_pageWidth = 337; $this->_pageHeight = 337; break; case 'INLAY': $this->_pageWidth = 425; $this->_pageHeight = 332; break; case 'INLAY_NOSIDES': $this->_pageWidth = 390; $this->_pageHeight = 332; break; } } if (isset($param['orientation']) && strtoupper($param['orientation']) == 'LANDSCAPE') { $w = $this->_pageWidth; $this->_pageWidth = $this->_pageHeight; $this->_pageHeight = $w; } parent::Image_Canvas($param); if (!$this->_pageWidth) { $this->_pageWidth = $this->_width; } elseif (!$this->_width) { $this->_width = $this->_pageWidth; } if (!$this->_pageHeight) { $this->_pageHeight = $this->_height; } elseif (!$this->_height) { $this->_height = $this->_pageHeight; } $this->_width = min($this->_width, $this->_pageWidth); $this->_height = min($this->_height, $this->_pageHeight); if (isset($param['align']) && ($this->_width != $this->_pageWidth || $this->_height != $this->_pageHeight)) { switch (strtoupper($param['align'])) { case 'TOPLEFT': $this->_top = 0; $this->_left = 0; break; case 'TOPCENTER': $this->_top = 0; $this->_left = ($this->_pageWidth - $this->_width) / 2; break; case 'TOPRIGHT': $this->_top = 0; $this->_left = $this->_pageWidth - $this->_width; break; case 'LEFTCENTER': $this->_top = ($this->_pageHeight - $this->_height) / 2; $this->_left = 0; break; case 'CENTER': $this->_top = ($this->_pageHeight - $this->_height) / 2; $this->_left = ($this->_pageWidth - $this->_width) / 2; break; case 'RIGHTCENTER': $this->_top = ($this->_pageHeight - $this->_height) / 2; $this->_left = $this->_pageWidth - $this->_width; break; case 'LEFTBOTTOM': $this->_top = $this->_pageHeight - $this->_height; $this->_left = 0; break; case 'CENTERBOTTOM': $this->_top = $this->_pageHeight - $this->_height; $this->_left = ($this->_pageWidth - $this->_width) / 2; break; case 'RIGHTBOTTOM': $this->_top = $this->_pageHeight - $this->_height; $this->_left = $this->_pageWidth - $this->_width; break; } } $this->_pdflib = $this->_version(); $addPage = true; if (isset($param['pdf']) && is_resource($param['pdf'])) { $this->_pdf =& $param['pdf']; if (isset($param['add_page']) && $param['add_page'] === false) { $addPage = false; } } else { $this->_pdf = pdf_new(); if (isset($param['filename'])) { pdf_open_file($this->_pdf, $param['filename']); } else { pdf_open_file($this->_pdf, ''); } pdf_set_parameter($this->_pdf, 'warning', 'true'); pdf_set_info($this->_pdf, 'Creator', isset($param['creator']) ? $param['creator'] : 'PEAR::Image_Canvas'); pdf_set_info($this->_pdf, 'Author', isset($param['author']) ? $param['author'] : 'Jesper Veggerby'); pdf_set_info($this->_pdf, 'Title', isset($param['title']) ? $param['title'] : 'Image_Canvas'); } if ($addPage) { pdf_begin_page($this->_pdf, $this->_pageWidth, $this->_pageHeight); } $this->_reset(); }
function reset(&$media) { OutputDriverGenericPDF::reset($media); // Check if PDFLIB is available if (!extension_loaded('pdf')) { // Try to use "dl" to dynamically load PDFLIB $result = dl(PDFLIB_DL_PATH); if (!$result) { readfile(HTML2PS_DIR . '/templates/missing_pdflib.html'); error_log("No PDFLIB extension found"); die; } } $this->pdf = pdf_new(); // Set PDF compatibility level pdf_set_parameter($this->pdf, "compatibility", $this->get_pdf_version()); /** * Use PDF license key, if present * * PDFLIB_LICENSE constant is defined in 'config.inc.php' file in "PDFLIB-specific" section. */ if (defined("PDFLIB_LICENSE")) { pdf_set_parameter($this->pdf, "license", PDFLIB_LICENSE); } pdf_open_file($this->pdf, $this->get_filename()); // @TODO: compression level, debug pdf_set_value($this->pdf, "compress", 0); // Set path to the PDFLIB UPR file containig information about fonts and encodings if (defined("PDFLIB_UPR_PATH")) { pdf_set_parameter($this->pdf, "resourcefile", PDFLIB_UPR_PATH); } // Setup font outlines global $g_font_resolver_pdf; $g_font_resolver_pdf->setup_ttf_mappings($this->pdf); $pdf = $this->pdf; pdf_set_info($pdf, "Creator", "html2ps (PHP version)"); // No borders around links in the generated PDF pdf_set_border_style($this->pdf, "solid", 0); pdf_begin_page($this->pdf, mm2pt($this->media->width()), mm2pt($this->media->height())); }
<?php //getting new instance $pdfFile = new_pdf(); PDF_open_file($pdfFile, " "); //document info pdf_set_info($pdfFile, "Auther", "Ahmed Elbshry"); pdf_set_info($pdfFile, "Creator", "Ahmed Elbshry"); pdf_set_info($pdfFile, "Title", "PDFlib"); pdf_set_info($pdfFile, "Subject", "Using PDFlib"); //starting our page and define the width and highet of the document pdf_begin_page($pdfFile, 595, 842); //check if Arial font is found, or exit if ($font = PDF_findfont($pdfFile, "Arial", "winansi", 1)) { PDF_setfont($pdfFile, $font, 12); } else { echo "Font Not Found!"; PDF_end_page($pdfFile); PDF_close($pdfFile); PDF_delete($pdfFile); exit; } //start writing from the point 50,780 PDF_show_xy($pdfFile, "This Text In Arial Font", 50, 780); PDF_end_page($pdfFile); PDF_close($pdfFile); //store the pdf document in $pdf $pdf = PDF_get_buffer($pdfFile); //get the len to tell the browser about it $pdflen = strlen($pdfFile); //telling the browser about the pdf document
$ring = 40; $header = 20; $footer = 228; $file = tempnam("", "tests") . '.pdf'; $width = 2 * ($radius + $margin); $height = 2 * ($radius + $margin) + $header + $footer; $pdf = pdf_new(); if (!pdf_open_file($pdf, $file)) { echo "error"; exit; } pdf_set_parameter($pdf, "warning", "true"); pdf_set_info($pdf, "Creator", "Phalanger"); pdf_set_info($pdf, "Author", "Uwe Steinmann"); pdf_set_info($pdf, "Title", "Analog Clock"); pdf_begin_page($pdf, $width, $height); function center($s, $y, $size, $fontname = "Times-Roman", $outline = 0) { global $pdf, $font, $width; pdf_set_value($pdf, "textrendering", $outline); $font = pdf_findfont($pdf, $fontname, "iso8859-2"); pdf_setfont($pdf, $font, $size); $w = pdf_stringwidth($pdf, $s); pdf_show_xy($pdf, $s, ($width - $w) / 2, $y); } /* outlined */ center("It is {$texttime}.", $height - 60, 42, "Times-Roman", 1); center("It is time for", 200, 100, "Times-Roman", 1); /* filled */ center("Phalanger!", 70, 110, "Times-Bold", 0); pdf_translate($pdf, $radius + $margin, $radius + $margin + $footer);
<?php //create file $fp = fopen('hello.pdf', 'w'); if (!$fp) { echo "Error: could not create the PDF file"; exit; } // start the pdf document $pdf = pdf_open($fp); pdf_set_info($pdf, "Creator", "pdftest.php"); pdf_set_info($pdf, "Author", "Luke Welling and Laura Thomson"); pdf_set_info($pdf, "Title", "Hello World (PHP)"); // US letter is 11" x 8.5" and there are 72 points per inch pdf_begin_page($pdf, 8.5 * 72, 11 * 72); pdf_add_outline($pdf, 'Page 1'); $font = pdf_findfont($pdf, 'Times-Roman', 'host', 0); pdf_setfont($pdf, $font, 24); pdf_set_text_pos($pdf, 50, 700); // write text pdf_show($pdf, 'Hello,world!'); pdf_continue_text($pdf, '(says PHP)'); // end the document pdf_end_page($pdf); pdf_close($pdf); fclose($fp); // display a link to download echo "download the pdf <a href = 'hello.pdf'>here</a>"; ?>
function my_new_pdf_page(&$pdf, $x, $y, $new_page = true) { if ($new_page) { $this->page_number++; } pdf_begin_page($pdf, $x, $y); // Having the origin in the bottom left corner confuses the // heck out of me, so let's move it to the top-left. pdf_translate($pdf, 0, $y); pdf_scale($pdf, 1, -1); // Reflect across horizontal axis pdf_set_value($pdf, "horizscaling", -100); // Mirror }
$font = pdf_load_font($pdf, 'Helvetica', 'host', ''); // winansi, host, iso8859-1, unicode >> unicode and glyph id addressing not supported in PDFlib Lite!!! if (NJB_DEFAULT_CHARSET == 'UTF-8') { pdf_set_parameter($pdf, 'textformat', 'utf8'); } pdf_set_info($pdf, 'Creator', 'netjukebox ' . NJB_VERSION); pdf_set_info($pdf, 'Title', $album['artist'] . ' - ' . $album['album']); $width = 210; // A4 $height = 297; // A4 $scale = 72 / 25.4; // mm to dtp-point (1 point = 1/72 inch; 1 inch = 25.4 mm) $hash_data = pdf_get_value($pdf, 'major', 0) . '-' . pdf_get_value($pdf, 'minor', 0) . '-' . NJB_VERSION; $hash_data .= '-' . $album['artist'] . ' - ' . $album['album'] . '-' . $width . '-' . $height; pdf_begin_page($pdf, $width * $scale, $height * $scale); pdf_scale($pdf, $scale, $scale); pdf_setlinewidth($pdf, 0.1); // +------------------------------------------------------------------------+ // | PDF back cover | // +------------------------------------------------------------------------+ $x0 = 30; $y0 = 22; pdf_translate($pdf, $x0, $y0); pdf_moveto($pdf, 0, -1); pdf_lineto($pdf, 0, -11); pdf_moveto($pdf, 6.5, -1); pdf_lineto($pdf, 6.5, -11); pdf_moveto($pdf, 144.5, -1); pdf_lineto($pdf, 144.5, -11); pdf_moveto($pdf, 151, -1);
<?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); // end page pdf_end_page($pdf); // close and save file pdf_close($pdf);
echo 'previamente generada por este programa'; exit; } $pdf = pdf_new(); pdf_open_file($pdf); pdf_set_info($pdf, "Author", "Jesús M. Castagnetto"); pdf_set_info($pdf, "Title", "Ejemplo de Factura"); pdf_set_info($pdf, "Creator", "Jesús M. Castagnetto"); pdf_set_info($pdf, "Subject", "Ejemplo de Factura"); $sizes = array('a4' => '595x842', 'letter' => '612x792', 'legal' => '612x1008'); if (!isset($type)) { $type = 'a4'; } list($x, $y) = explode('x', $sizes[$type]); $items = array(array('Un programa simple que hace de todo', '299.99'), array('El programa especial sin el que el anterior no corre', '1899'), array('Una libreria de comunicacion', '29.95'), array('Un programa para bloquear la comunicacion', '49.95'), array('Una libreria que comprime todo a 1 byte', '49.9'), array('Y un programa que permite recuperar lo comprimido a 1 byte', '39999.95')); pdf_begin_page($pdf, $x, $y); $imagepath = realpath('../images/booger.jpg'); $im = pdf_open_jpeg($pdf, $imagepath); pdf_place_image($pdf, $im, 5, $y - 72, 0.5); pdf_close_image($pdf, $im); pdf_set_value($pdf, 'textrendering', 0); // fill pdf_set_font($pdf, "Helvetica", 12, winansi); pdf_show_xy($pdf, 'Micro Snot & L4m3r5 S.R.L.', 145, $y - 20); pdf_continue_text($pdf, '123 Calle del Dolor'); pdf_continue_text($pdf, 'Tacora, Lima 666'); pdf_set_font($pdf, "Helvetica", 10, winansi); pdf_show_xy($pdf, 'Cliente Sin Salvacion S.A.', 20, $y - 100); pdf_continue_text($pdf, '1 Calle Pequena'); pdf_continue_text($pdf, 'Cuidad Perdida, Puno 123'); pdf_set_font($pdf, "Helvetica", 10, winansi);
<?php # pdf_example4 # a simple bar graph // create a new pdf document $pdf = pdf_new(); $filename = 'c:pdf_example4.pdf'; pdf_open_file($pdf, $filename); // start a new page (Letter size) pdf_begin_page($pdf, 612, 792); // setup font and print hello world pdf_set_parameter($pdf, 'FontOutline', 'Arial=c:windowsfontsarial.ttf'); $font = pdf_findfont($pdf, "Arial", "host", 1); pdf_setfont($pdf, $font, 16); pdf_show_xy($pdf, "Simple Bar Graph", 50, 720); // draw the x and y axis pdf_moveto($pdf, 50, 690); pdf_lineto($pdf, 50, 520); pdf_lineto($pdf, 400, 520); pdf_stroke($pdf); // draw the bar chart $x = 80; $y = 520; $w = 40; // the data and color for each column $data = array('120', '160', '300', '240'); $color = array('#4EC3BC', '#DAA876', '#E29CC8', '#FDE0C6'); // get into some meat now, cheese for vegetarians; for ($i = 0; $i < count($data); $i++) { // calculate the height of the bar $y_ht = $data[$i] / max($data) * 100;
<?php define('PAGE_WIDTH', 612); define('PAGE_HEIGHT', 792); $pdf = pdf_new(); pdf_open_file($pdf); pdf_begin_page($pdf, PAGE_WIDTH, PAGE_HEIGHT); $font = pdf_findfont($pdf, "Helvetica", "auto", false); pdf_setfont($pdf, $font, 30); pdf_show_xy($pdf, "PHP Developer's Handbook", 10, PAGE_HEIGHT - 40); pdf_setfont($pdf, $font, 12); pdf_show_xy($pdf, "Hello, World! Using PDFLib and PHP", 10, PAGE_HEIGHT - 55); pdf_end_page($pdf); pdf_close($pdf); $data = pdf_get_buffer($pdf); header('Content-type: application/pdf'); header("Content-disposition: inline; filename=output.pdf"); header("Content-length: " . strlen($data)); echo $data;