123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- <?php
- /**
- * DOMPDF - PHP5 HTML to PDF renderer
- *
- * File: $RCSfile: canvas.cls.php,v $
- * Created on: 2004-06-06
- *
- * Copyright (c) 2004 - Benj Carson <benjcarson@digitaljunkies.ca>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library in the file LICENSE.LGPL; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- * 02111-1307 USA
- *
- * Alternatively, you may distribute this software under the terms of the
- * PHP License, version 3.0 or later. A copy of this license should have
- * been distributed with this file in the file LICENSE.PHP . If this is not
- * the case, you can obtain a copy at http://www.php.net/license/3_0.txt.
- *
- * The latest version of DOMPDF might be available at:
- * http://www.dompdf.com/
- *
- * @link http://www.dompdf.com/
- * @copyright 2004 Benj Carson
- * @author Benj Carson <benjcarson@digitaljunkies.ca>
- * @package dompdf
- */
- /* $Id: canvas.cls.php 216 2010-03-11 22:49:18Z ryan.masten $ */
- /**
- * Main rendering interface
- *
- * Currently {@link CPDF_Adapter}, {@link PDFLib_Adapter}, {@link TCPDF_Adapter}, and {@link GD_Adapter}
- * implement this interface.
- *
- * Implementations should measure x and y increasing to the left and down,
- * respectively, with the origin in the top left corner. Implementations
- * are free to use a unit other than points for length, but I can't
- * guarantee that the results will look any good.
- *
- * @package dompdf
- */
- interface Canvas {
- /**
- * Returns the current page number
- *
- * @return int
- */
- function get_page_number();
- /**
- * Returns the total number of pages
- *
- * @return int
- */
- function get_page_count();
- /**
- * Sets the total number of pages
- *
- * @param int $count
- */
- function set_page_count($count);
- /**
- * Draws a line from x1,y1 to x2,y2
- *
- * See {@link Style::munge_colour()} for the format of the colour array.
- * See {@link Cpdf::setLineStyle()} for a description of the format of the
- * $style parameter (aka dash).
- *
- * @param float $x1
- * @param float $y1
- * @param float $x2
- * @param float $y2
- * @param array $color
- * @param float $width
- * @param array $style
- */
- function line($x1, $y1, $x2, $y2, $color, $width, $style = null);
- /**
- * Draws a rectangle at x1,y1 with width w and height h
- *
- * See {@link Style::munge_colour()} for the format of the colour array.
- * See {@link Cpdf::setLineStyle()} for a description of the $style
- * parameter (aka dash)
- *
- * @param float $x1
- * @param float $y1
- * @param float $w
- * @param float $h
- * @param array $color
- * @param float $width
- * @param array $style
- */
- function rectangle($x1, $y1, $w, $h, $color, $width, $style = null);
- /**
- * Draws a filled rectangle at x1,y1 with width w and height h
- *
- * See {@link Style::munge_colour()} for the format of the colour array.
- *
- * @param float $x1
- * @param float $y1
- * @param float $w
- * @param float $h
- * @param array $color
- */
- function filled_rectangle($x1, $y1, $w, $h, $color);
- /**
- * Draws a polygon
- *
- * The polygon is formed by joining all the points stored in the $points
- * array. $points has the following structure:
- * <code>
- * array(0 => x1,
- * 1 => y1,
- * 2 => x2,
- * 3 => y2,
- * ...
- * );
- * </code>
- *
- * See {@link Style::munge_colour()} for the format of the colour array.
- * See {@link Cpdf::setLineStyle()} for a description of the $style
- * parameter (aka dash)
- *
- * @param array $points
- * @param array $color
- * @param float $width
- * @param array $style
- * @param bool $fill Fills the polygon if true
- */
- function polygon($points, $color, $width = null, $style = null, $fill = false);
- /**
- * Draws a circle at $x,$y with radius $r
- *
- * See {@link Style::munge_colour()} for the format of the colour array.
- * See {@link Cpdf::setLineStyle()} for a description of the $style
- * parameter (aka dash)
- *
- * @param float $x
- * @param float $y
- * @param float $r
- * @param array $color
- * @param float $width
- * @param array $style
- * @param bool $fill Fills the circle if true
- */
- function circle($x, $y, $r, $color, $width = null, $style = null, $fill = false);
- /**
- * Add an image to the pdf.
- *
- * The image is placed at the specified x and y coordinates with the
- * given width and height.
- *
- * @param string $img_url the path to the image
- * @param string $img_type the type (e.g. extension) of the image
- * @param float $x x position
- * @param float $y y position
- * @param int $w width (in pixels)
- * @param int $h height (in pixels)
- */
- function image($img_url, $img_type, $x, $y, $w, $h);
- /**
- * Writes text at the specified x and y coordinates
- *
- * See {@link Style::munge_colour()} for the format of the colour array.
- *
- * @param float $x
- * @param float $y
- * @param string $text the text to write
- * @param string $font the font file to use
- * @param float $size the font size, in points
- * @param array $color
- * @param float $adjust word spacing adjustment
- */
- function text($x, $y, $text, $font, $size, $color = array(0,0,0), $adjust = 0);
- /**
- * Add a named destination (similar to <a name="foo">...</a> in html)
- *
- * @param string $anchorname The name of the named destination
- */
- function add_named_dest($anchorname);
- /**
- * Add a link to the pdf
- *
- * @param string $url The url to link to
- * @param float $x The x position of the link
- * @param float $y The y position of the link
- * @param float $width The width of the link
- * @param float $height The height of the link
- */
- function add_link($url, $x, $y, $width, $height);
-
- /**
- * Calculates text size, in points
- *
- * @param string $text the text to be sized
- * @param string $font the desired font
- * @param float $size the desired font size
- * @param float $spacing word spacing, if any
- * @return float
- */
- function get_text_width($text, $font, $size, $spacing = 0);
- /**
- * Calculates font height, in points
- *
- * @param string $font
- * @param float $size
- * @return float
- */
- function get_font_height($font, $size);
-
- /**
- * Starts a new page
- *
- * Subsequent drawing operations will appear on the new page.
- */
- function new_page();
- /**
- * Streams the PDF directly to the browser
- *
- * @param string $filename the name of the PDF file
- * @param array $options associative array, 'Attachment' => 0 or 1, 'compress' => 1 or 0
- */
- function stream($filename, $options = null);
- /**
- * Returns the PDF as a string
- *
- * @param array $options associative array: 'compress' => 1 or 0
- * @return string
- */
- function output($options = null);
-
- }
|