Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

graphics::primitive::driver::cairo(3pm) [debian man page]

Graphics::Primitive::Driver::Cairo(3pm) 		User Contributed Perl Documentation		   Graphics::Primitive::Driver::Cairo(3pm)

NAME
Graphics::Primitive::Driver::Cairo - Cairo backend for Graphics::Primitive VERSION
version 0.44 SYNOPSIS
use Graphics::Primitive::Component; use Graphics::Primitive::Driver::Cairo; my $driver = Graphics::Primitive::Driver::Cairo->new; my $container = Graphics::Primitive::Container->new( width => 800, height => 600 ); my $black = Graphics::Primitive::Color->new(red => 0, green => 0, blue => 0); $container->border->width(1); $container->border->color($black); $container->padding( Graphics::Primitive::Insets->new(top => 5, bottom => 5, left => 5, right => 5) ); my $comp = Graphics::Primitive::Component->new; $comp->background_color($black); $container->add_component($comp, 'c'); my $lm = Layout::Manager::Compass->new; $lm->do_layout($container); my $driver = Graphics::Primitive::Driver::Cairo->new( format => 'PDF' ); $driver->draw($container); $driver->write('/Users/gphat/foo.pdf'); DESCRIPTION
This module draws Graphics::Primitive objects using Cairo. IMPLEMENTATION DETAILS
Borders Borders are drawn clockwise starting with the top one. Since cairo can't do line-joins on different colored lines, each border overlaps those before it. This is not the way I'd like it to work, but i'm opting to fix this later. Consider yourself warned. ATTRIBUTES
antialias_mode Set/Get the antialias mode of this driver. Options are default, none, gray and subpixel. cairo This driver's Cairo::Context object format Get the format for this driver. surface Get/Set the surface on which this driver is operating. METHODS
data Get the data in a scalar for this driver. write ($file) Write this driver's data to the specified file. get_text_bounding_box ($font, $text, $angle) Returns two Rectangles that encloses the supplied text. The origin's x and y maybe negative, meaning that the glyphs in the text extending left of x or above y. The first rectangle is the bounding box required for a container that wants to contain the text. The second box is only useful if an optional angle is provided. This second rectangle is the bounding box of the un-rotated text that allows for a controlled rotation. If no angle is supplied then the two rectangles are actually the same object. If the optional angle is supplied the text will be rotated by the supplied amount in radians. get_textbox_layout ($tb) Returns a Graphics::Primitive::Driver::TextLayout for the supplied textbox. reset Reset the driver. draw Draws the specified component. Container's components are drawn recursively. ACKNOWLEDGEMENTS
Danny Luna AUTHOR
Cory G Watson <gphat@cpan.org> COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Cold Hard Code, LLC. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.12.4 2011-09-27 Graphics::Primitive::Driver::Cairo(3pm)

Check Out this Related Man Page

Graphics::Primitive(3pm)				User Contributed Perl Documentation				  Graphics::Primitive(3pm)

NAME
Graphics::Primitive - Device and library agnostic graphic primitives SYNOPSIS
Graphics::Primitive is a device and library agnostic system for creating and manipulating various graphical elements such as Borders, Fonts, Paths and the like. my $c = Graphics::Primitive::Component->new( background_color => Graphics::Color::RGB->new( red => 1, green => 0, blue => 0 ), width => 500, height => 350, border => new Graphics::Primitive::Border->new( width => 5 ) ); my $driver = Graphics::Primitive::Driver::Cairo->new(format => 'SVG'); $driver->prepare($c); $driver->finalize($c); $driver->draw($c); $driver->write($filename) DESCRIPTION
Graphics::Primitive is library agnostic system for drawing things. The idea is to allow you to create and manipulate graphical components and then pass them off to a Driver for actual drawing. CONCEPTS
The root object for Graphics::Primitive is the Component. Components contain all the common elements that you'd expect: margins, padding, background color etc. The next most important is the Container. Containers are Components that can hold other Components. Containers have all the attributes and methods of a Component with the addition of the layout_manager attribute for us with Layout::Manager. Another important Component is the Canvas. The Canvas differs from other components by being a container for various Geometry::Primitive objects. This allows drawing of arbitrary shapes that do not fit existing components. DRAWING LIFECYCLE
After creating all your components, there is a lifecycle that allows them to do their internal housekeeping to prepare for eventual drawing. The lifecycle is: prepare, layout and pack. Detailed explanation of these methods can be found in Component. PREPARATION
Graphics::Primitive::Component has a "prepared" flag. This flag is set as part of the "prepare" method (shocking, I know). If this flag is set, then subsequent calls to "prepare" are ignored. Containers also have a prepare flag, but this flag is not set when calling "prepare". A Container's flag should be set by the layout manager. More information may be found with Layout::Manager. INSPIRATION
Most of the concepts that you'll find in Graphics::Primitive are inspired by Cairo <http://cairographics.org>'s API and CSS <http://www.w3.org/Style/CSS/>'s box model. AUTHOR
Cory Watson, "<gphat@cpan.org>" CONTRIBUTORS
Florian Ragwitz ACKNOWLEDGEMENTS
Many of the ideas here come from my experience using the Cairo library. COPYRIGHT &; LICENSE Copyright 2008-2010 by Cory G Watson. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.12.3 2011-06-02 Graphics::Primitive(3pm)
Man Page