$co = PDF::API2::Content->new @parameters

Returns a new content object (called from $page->text/gfx).

$co->add @content

Adds @content to the object.

$co->save

Saves the state of the object.

$co->restore

Restores the state of the object.

$co->compress

Marks content for compression on output.

$co->flatness $flat

Sets flatness.

$co->linecap $cap

Sets linecap.

$co->linedash @dash

Sets linedash.

$co->linejoin $join

Sets linejoin.

$co->linewidth $width

Sets linewidth.

$co->meterlimit $limit

Sets meterlimit.

$co->matrix $a,$b,$c,$d,$e,$f

Sets matrix transformation.

$co->translate $x,$y

Sets translation transformation.

$co->scale $sx,$sy

Sets scaleing transformation.

$co->skew $sa,$sb

Sets skew transformation.

$co->rotate $rot

Sets rotation transformation.

$co->transform %opts

Sets transformations (eg. translate, rotate, scale, skew) in pdf-canonical order.

Example:

$co->transform(
    -translate => [$x,$y],
    -rotate    => $rot,
    -scale     => [$sx,$sy],
    -skew      => [$sa,$sb],
)
$co->fillcolor @colors
$co->strokecolor @colors

Sets fill-/strokecolor, see PDF::API2::Util for a list of possible color specifiers.

Examples:

$co->fillcolor('blue');       # blue
$co->strokecolor('#FF0000');  # red
$co->fillcolor('%FFF000000'); # cyan

GRAPHICS METHODS

$gfx->move $x, $y
$gfx->line $x, $y
$gfx->hline $x
$gfx->vline $y
$gfx->curve $cx1, $cy1, $cx2, $cy2, $x, $y
$gfx->spline $cx1, $cy1, $x, $y
$gfx->arc $x, $y, $a, $b, $alfa, $beta, $move

will draw an arc centered at x,y with minor/major-axis given by a,b from alfa to beta (degrees). move must be set to 1, unless you want to continue an existing path.

$gfx->ellipse $x, $y, $a, $b
$gfx->circle $x, $y, $r
$gfx->bogen $x1, $y1, $x2, $y2, $r, $move, $larc, $span

will draw an arc of a circle from x1,y1 to x2,y2 with radius r. move must be set to 1, unless you want to continue an existing path. larc can be set to 1, if you want to draw the larger instead of the shorter arc. span can be set to 1, if you want to draw the arc on the other side. NOTE: 2*r cannot be smaller than the distance from x1,y1 to x2,y2.

$gfx->pie $x, $y, $a, $b, $alfa, $beta
$gfx->rect $x1,$y1, $w1,$h1, ..., $xn,$yn, $wn,$hn
$gfx->rectxy $x1,$y1, $x2,$y2
$gfx->poly $x1,$y1, ..., $xn,$yn
$gfx->close
$gfx->endpath
$gfx->clip $nonzero
$gfx->stroke
$gfx->fill $nonzero
$gfx->fillstroke $nonzero
$gfx->image $imgobj, $x,$y, $w,$h
$gfx->image $imgobj, $x,$y, $scale
$gfx->image $imgobj, $x,$y

Please Note: The width/height or scale given is in user-space coordinates which is subject to transformations which may have been specified beforehand.

Per default this has a 72dpi resolution, so if you want an image to have a 150 or 300dpi resolution, you should specify a scale of 72/150 (or 72/300) or adjust width/height accordingly.

$gfx->formimage $imgobj, $x, $y, $scale
$gfx->formimage $imgobj, $x, $y

Places the X-Object (or XO-Form) at x/y with optional scale.

$gfx->shade $shadeobj, $x1,$y1, $x2,$y2
$gfx->egstate $egsobj
$hyb->textstart
%state = $txt->textstate %state

Sets or gets the current text-object state.

($tx,$ty) = $txt->textpos

Gets the current estimated text position.

Note: This is relative to text-space.

$txt->transform_rel %opts

Sets transformations (eg. translate, rotate, scale, skew) in pdf-canonical order, but relative to the previously set values.

Example:

$txt->transform_rel(
  -translate => [$x,$y],
  -rotate    => $rot,
  -scale     => [$sx,$sy],
  -skew      => [$sa,$sb],
)
$txt->font $fontobj,$size
$txt->fontset $fontobj,$size

The fontset method WILL NOT APPLY the font+size to the pdf-stream, but which will later be done by the text-methods.

Only use fontset if you know what you are doing, there is no super-secret failsave!

$spacing = $txt->charspace $spacing
$spacing = $txt->wordspace $spacing
$spacing = $txt->hspace $spacing
$leading = $txt->lead $leading
$rise = $txt->rise $rise
$rendering = $txt->render $rendering
$txt->cr $linesize

takes an optional argument giving a custom leading between lines.

$txt->nl
$txt->distance $dx,$dy
$width = $txt->advancewidth $string [, %textstate]

Returns the width of the string based on all currently set text-attributes or on those overridden by %textstate.

$width = $txt->text $text, %options

Applys text to the content and optionally returns the width of the given text.

Options

-indent

Indent the text by the number of points.

-underline

If this is a scalar, it is the distance, in points, below the baseline where the line is drawn. The line thickness is one point. If it is a reference to an array, each pair is the distance below the baseline and the thickness of the line (ie., -underline=>[2,1,4,2] will draw a double underline with the lower twice as thick as the upper).

If thickness is a reference to an array, the first value is the thickness and the second value is the color of the line (ie., -underline=>[2,[1,'red'],4,[2,'#0000ff']] will draw a "red" and a "blue" line).

You can also use the string 'auto' for either or both distance and thickness values to auto-magically calculate best values from the font-definition.

$txt->text_center $text
$txt->text_right $text, %options
$width = $txt->text_justified $text, $width, %options

** DEVELOPER METHOD **

($width,$chunktext) = $txt->text_fill_left $text, $width

** DEVELOPER METHOD **

($width,$chunktext) = $txt->text_fill_center $text, $width, %options

** DEVELOPER METHOD **

($width,$chunktext) = $txt->text_fill_right $text, $width

** DEVELOPER METHOD **

($width,$chunktext) = $txt->text_fill_justified $text, $width

** DEVELOPER METHOD **

$overflow_text = $txt->paragraph $text, $width, $height, %options

** DEVELOPER METHOD **

Apply the text within the rectangle and return any leftover text.

Options

-align => $choice

Choice is 'justified', 'right', 'center', 'left' Default is 'left'

-underline => $distance
-underline => [ $distance, $thickness, ... ]

If a scalar, distance below baseline, else array reference with pairs of distance and line thickness.

Example:

$txt->font($font,$fontsize);
$txt->lead($lead);
$txt->translate($x,$y);
$overflow = $txt->paragraph( 'long paragraph here ...',
                             $width,
                             $y+$lead-$bottom_margin );
$hyb->textend
$width = $txt->textlabel $x, $y, $font, $size, $text, %options

Applys text with options, but without teststart/end and optionally returns the width of the given text.

Example:

$t = $page->gfx;
$t->textlabel(300,700,$myfont,20,'Page Header',
    -rotate => -30,
    -color => '#FF0000',
    -hspace => 120,
    -align => 'center',
);
$t->textlabel(500,500,$myfont,20,'Page Header',
    -rotate => 30,
    -color => '#0000FF',
    -hspace => 80,
    -align => 'right',
);

AUTHOR

alfred reibenschuh

HISTORY

$Log: Content.pm,v $
Revision 1.40  2005/10/19 19:04:43  fredo
added extended typographic text handling call

Revision 1.39  2005/10/01 22:10:57  fredo
added more docs for textlabel

Revision 1.38  2005/06/17 19:43:46  fredo
fixed CPAN modulefile versioning (again)

Revision 1.37  2005/06/17 18:53:04  fredo
fixed CPAN modulefile versioning (dislikes cvs)

Revision 1.36  2005/05/29 09:48:46  fredo
added conditional textstate2 method

Revision 1.35  2003/04/09 11:12:13  fredo
documented form-image

Revision 1.34  2005/03/15 02:20:46  fredo
added metadata stubs

Revision 1.33  2005/03/14 22:01:05  fredo
upd 2005

Revision 1.32  2005/03/14 20:26:44  fredo
added 'auto' value for -underline parameter in text
fixed text line construction to to work under width==0 conditions

Revision 1.31  2005/02/22 22:59:49  fredo
fixed infinite loop in paragraph if words longer than a paragraph are present.

Revision 1.30  2005/02/07 19:31:24  fredo
fixed reset of textlinematrix on textmatrix set/resets

Revision 1.29  2005/01/21 10:19:48  fredo
added spline operator

Revision 1.28  2005/01/03 01:16:51  fredo
fixed textpos tracking in nl method

Revision 1.27  2004/12/31 03:59:09  fredo
fixed paragraph and text_fill_* methods
(thanks to Shawn Corey <shawn.corey@sympatico.ca>)

Revision 1.26  2004/12/31 02:53:18  fredo
minor code corrections

Revision 1.25  2004/12/31 02:06:37  fredo
fixed textpos calculation,
added underline capability
(thanks to Shawn Corey <shawn.corey@sympatico.ca>)

Revision 1.24  2004/12/29 22:01:57  fredo
advancewidth now can take a virtual textstate

Revision 1.23  2004/12/29 01:48:15  fredo
fixed _font method

Revision 1.22  2004/12/29 01:14:57  fredo
added virtual attribute support

Revision 1.21  2004/12/20 12:11:54  fredo
added fontset method to not set via 'Tf'

Revision 1.20  2004/12/16 00:30:51  fredo
added no warn for recursion

Revision 1.19  2004/12/15 16:44:43  fredo
added condition to apply font (Tf) only when needed

Revision 1.18  2004/11/25 20:53:59  fredo
fixed unifont registration

Revision 1.17  2004/11/24 20:10:31  fredo
added virtual font handling, fixed var shadow bug

Revision 1.16  2004/10/26 11:34:22  fredo
reworked text_fill for paragraph, but still being development

Revision 1.15  2004/08/31 13:50:09  fredo
fixed space vs. whitespace split bug

Revision 1.14  2004/07/29 10:46:37  fredo
added new text_fill_* methods and a simple paragraph

Revision 1.13  2004/06/21 22:33:36  fredo
added basic pattern/shading handling

Revision 1.12  2004/06/15 09:11:37  fredo
removed cr+lf

Revision 1.11  2004/06/07 19:44:12  fredo
cleaned out cr+lf for lf

Revision 1.10  2004/05/31 23:20:48  fredo
added basic platform encoding independency

Revision 1.9  2004/04/07 10:49:26  fredo
fixed handling of colorSpaces for fill/strokecolor

Revision 1.8  2004/02/12 14:46:44  fredo
removed duplicate definition of egstate method

Revision 1.7  2004/02/06 02:01:25  fredo
added save/restore around textlabel

Revision 1.6  2004/02/05 23:24:00  fredo
fixed lab behavior

Revision 1.5  2004/02/05 12:26:08  fredo
revised '_makecolor' to use Lab for hsv/hsl,
added textlabel method

Revision 1.4  2003/12/08 13:05:19  Administrator
corrected to proper licencing statement

Revision 1.3  2003/11/30 17:09:18  Administrator
merged into default

Revision 1.2.2.1  2003/11/30 16:56:21  Administrator
merged into default

Revision 1.2  2003/11/30 11:33:59  Administrator
added CVS id/log

5 POD Errors

The following errors were encountered while parsing the POD:

Around line 109:

'=item' outside of any '=over'

Around line 673:

You forgot a '=back' before '=head1'

Around line 1725:

Unknown directive: =ovar

Around line 1842:

'=item' outside of any '=over'

Around line 2159:

You forgot a '=back' before '=head1'