| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385 | <?php/** * @package dompdf * @link    http://dompdf.github.com/ * @author  Benj Carson <benjcarson@digitaljunkies.ca> * @author  Fabien Ménager <fabien.menager@gmail.com> * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License *//** * 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 {  function __construct($paper = "letter", $orientation = "portrait", DOMPDF $dompdf);  /**   * @return DOMPDF   */  function get_dompdf();  /**   * 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_color()} for the format of the color 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_color()} for the format of the color 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_color()} for the format of the color array.   *   * @param float $x1   * @param float $y1   * @param float $w   * @param float $h   * @param array $color   */     function filled_rectangle($x1, $y1, $w, $h, $color);  /**   * Starts a clipping rectangle at x1,y1 with width w and height h   *   * @param float $x1   * @param float $y1   * @param float $w   * @param float $h   */     function clipping_rectangle($x1, $y1, $w, $h);  /**   * Starts a rounded clipping rectangle at x1,y1 with width w and height h   *   * @param float $x1   * @param float $y1   * @param float $w   * @param float $h   * @param float $tl   * @param float $tr   * @param float $br   * @param float $bl   *   * @return   */  function clipping_roundrectangle($x1, $y1, $w, $h, $tl, $tr, $br, $bl);    /**   * Ends the last clipping shape   */    function clipping_end();    /**   * Save current state   */  function save();    /**   * Restore last state   */  function restore();    /**   * Rotate   */  function rotate($angle, $x, $y);    /**   * Skew   */  function skew($angle_x, $angle_y, $x, $y);    /**   * Scale   */  function scale($s_x, $s_y, $x, $y);    /**   * Translate   */  function translate($t_x, $t_y);    /**   * Transform   */  function transform($a, $b, $c, $d, $e, $f);    /**   * 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_color()} for the format of the color 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_color()} for the format of the color 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 float $x x position   * @param float $y y position   * @param int $w width (in pixels)   * @param int $h height (in pixels)   * @param string $resolution The resolution of the image   */  function image($img_url, $x, $y, $w, $h, $resolution = "normal");  /**   * Add an arc to the PDF   * See {@link Style::munge_color()} for the format of the color array.   *   * @param float $x      X coordinate of the arc   * @param float $y      Y coordinate of the arc   * @param float $r1     Radius 1   * @param float $r2     Radius 2   * @param float $astart Start angle in degrees   * @param float $aend   End angle in degrees   * @param array $color  Color   * @param float $width   * @param array $style   *   * @return void   */  function arc($x, $y, $r1, $r2, $astart, $aend, $color, $width, $style = array());  /**   * Writes text at the specified x and y coordinates   * See {@link Style::munge_color()} for the format of the color 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  $word_space word spacing adjustment   * @param float  $char_space char spacing adjustment   * @param float  $angle      angle   *   * @return void   */  function text($x, $y, $text, $font, $size, $color = array(0,0,0), $word_space = 0.0, $char_space = 0.0, $angle = 0.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   *   * @return void   */  function add_link($url, $x, $y, $width, $height);  /**   * Add meta information to the pdf   *   * @param string $name  Label of the value (Creator, Producer, etc.)   * @param string $value The text to set   */  function add_info($name, $value);    /**   * 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  $word_spacing word spacing, if any   * @param float  $char_spacing   *   * @return float   */  function get_text_width($text, $font, $size, $word_spacing = 0.0, $char_spacing = 0.0);  /**   * Calculates font height, in points   *   * @param string $font   * @param float  $size   *   * @return float   */  function get_font_height($font, $size);  /**   * Calculates font baseline, in points   *   * @param string $font   * @param float  $size   *   * @return float   */  function get_font_baseline($font, $size);    /**   * Returns the font x-height, in points   *   * @param string $font   * @param float  $size   *   * @return float   */  //function get_font_x_height($font, $size);    /**   * Sets the opacity   *   * @param float  $opacity   * @param string $mode   */  function set_opacity($opacity, $mode = "Normal");  /**   * Sets the default view   *   * @param string $view   * 'XYZ'  left, top, zoom   * 'Fit'   * 'FitH' top   * 'FitV' left   * 'FitR' left,bottom,right   * 'FitB'   * 'FitBH' top   * 'FitBV' left   * @param array  $options   *   * @return void   */  function set_default_view($view, $options = array());  /**   * @param string $script   *   * @return void   */  function javascript($script);  /**   * 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);}
 |