.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PDF::API2::Simple 3pm" .TH PDF::API2::Simple 3pm "2008-02-11" "perl v5.14.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PDF::API2::Simple \- Simplistic wrapper for the excellent PDF::API2 modules .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use PDF::API2::Simple; \& \& my $pdf = PDF::API2::Simple\->new( \& file => \*(Aqoutput.pdf\*(Aq \& ); \& \& $pdf\->add_font(\*(AqVerdanaBold\*(Aq); \& $pdf\->add_font(\*(AqVerdana\*(Aq); \& $pdf\->add_page(); \& \& $pdf\->link( \*(Aqhttp://search.cpan.org\*(Aq, \*(AqA Hyperlink\*(Aq, \& x => 350, \& y => $pdf\->height \- 150 ); \& \& for (my $i = 0; $i < 250; $i++) { \& my $text = "$i \- All work and no play makes Jack a dull boy"; \& \& $pdf\->text($text, autoflow => \*(Aqon\*(Aq); \& } \& \& $pdf\->save(); .Ve .PP Take note that \s-1PDF\s0 coordinates are not quite what you're used to. The coordinate, (0, 0) for instance is at the lower-left hand corner. Thus, x still grows to the right, but y grows towards the top. .SH "METHODS" .IX Header "METHODS" .SS "new" .IX Subsection "new" .Vb 10 \& PDF::API2::Simple\->new( \& \*(Aqfile\*(Aq => \*(Aqoutput.txt\*(Aq, \& \*(Aqwidth\*(Aq => 612, \& \*(Aqheight\*(Aq => 792, \& \*(Aqline_height\*(Aq => 10, \& \*(Aqmargin_left\*(Aq => 20, \& \*(Aqmargin_top\*(Aq => 20, \& \*(Aqmargin_right\*(Aq => 20, \& \*(Aqmargin_bottom\*(Aq => 50, \& \*(Aqwidth_right\*(Aq => 0, \& \*(Aqheight_bottom\*(Aq => 0, \& \*(Aqeffective_width\*(Aq => 0, \& \*(Aqeffective_height\*(Aq => 0, \& \*(Aqheader\*(Aq => undef, \& \*(Aqfooter\*(Aq => undef, \& ); .Ve .PP Creates a new PDF::API2::Simple instance. A good strategy is to create a new object for each pdf file you want to create. That is, of course, up to you. .IP "\(bu" 4 file \- The \s-1PDF\s0 file you want to write to. No default, parameter required .IP "\(bu" 4 width \- The width of the \s-1PDF\s0 file. Defaults to 612, the 8 1/2 x 11 \s-1US\s0 Letter width .IP "\(bu" 4 height \- The height of the \s-1PDF\s0 file. Defaults to 792, the 8 1/2 x 11 \s-1US\s0 Letter height .IP "\(bu" 4 line_height \- The standard height you want to define for lines. The default is 10 .IP "\(bu" 4 margin_left \- The amount of margin space you want on the left side. Of course, you can specify whatever coordniates you want. Default is 20 .IP "\(bu" 4 margin_top \- The amount of margin space you want on the top of each page. Default is 20 .IP "\(bu" 4 margin_right \- The amount of margin space you want of the right side of each page. Default is 20 .IP "\(bu" 4 margin_bottom \- The amount of margin space you want on the bottom of each page. Default is 50 .IP "\(bu" 4 width_right \- A convenience property that contains the furthest \fIx\fR of the page, accounting for the margins specified .IP "\(bu" 4 height_bottom \- A convenience property that contains the largest \f(CW\*(C`y\*(C'\fR of the page, accounting for the bottom margin .IP "\(bu" 4 effective_width \- A convenience property that contains the width of the page, after the left and right margin have been accounted for .IP "\(bu" 4 effective_height \- A convenience property that contains the height of the page, after the top and bottom margin have been accounted for .IP "\(bu" 4 header \- This \f(CW\*(C`CODE\*(C'\fR reference will be called everytime a page is appended to the \s-1PDF\s0, allowing you to specifiy a header for your pages .IP "\(bu" 4 footer \- This \f(CW\*(C`CODE\*(C'\fR reference will be called everytime a page is ended, allowing you to specifiy a footer for your pages .SS "open" .IX Subsection "open" .Vb 5 \& PDF::API2::Simple\->open( \& \*(Aqopen_file\*(Aq => \*(Aqmy_pdf.pdf\*(Aq, \& \*(Aqopen_page\*(Aq => 1, # Default is 1. \& # Any other options to new. \& ); .Ve .PP This method opens an existing \s-1PDF\s0 for editing. You can include any other arguments that are valid for \f(CW\*(C`new\*(C'\fR and they will be set in the resulting object. .SS "Space Management" .IX Subsection "Space Management" The following methods help you to manage the space on each page of your \s-1PDF\s0. .PP \fInext_line_would_extend_page\fR .IX Subsection "next_line_would_extend_page" .PP Returns a true value if the current \f(CW\*(C`y\*(C'\fR minus \f(CW\*(C`line_height\*(C'\fR would write past the bottom margin. .PP \fIwould_extend_page \f(CI\*(C`theoretical_y\*(C'\fI\fR .IX Subsection "would_extend_page theoretical_y" .PP Returns a true value if the \f(CW\*(C`theoretical_y\*(C'\fR would write past the bottom margin. .PP \fInext_line\fR .IX Subsection "next_line" .PP Reduces the current \f(CW\*(C`y\*(C'\fR by \f(CW\*(C`line_height\*(C'\fR. .PP \fIadd_page\fR .IX Subsection "add_page" .PP Closes the current page, resets the \f(CW\*(C`x\*(C'\fR and \f(CW\*(C`y\*(C'\fR values to thier default coordinates, and calls the header callback, if specified. This method may be called for in, such as if your autoflow text wraps over a page. .PP \fIend_page\fR .IX Subsection "end_page" .PP Closes the current page, and calls the footer callback, if specified. This method is usually called for you. .SS "General Management" .IX Subsection "General Management" These methods help you manage the \s-1PDF\s0 itself .PP \fIadd_font \f(CI\*(C`font_name\*(C'\fI\fR .IX Subsection "add_font font_name" .PP This method will add a font to be used throughout the \s-1PDF\s0. You \f(CW\*(C`MUST\*(C'\fR call this at least once before laying out your \s-1PDF\s0. \f(CW\*(C`font_name\*(C'\fR is a font name, such as 'Arial', or 'Verdana'. Appending 'Bold' seems to make the text bold, as in 'VerdanaBold'. Refer to \s-1PDF::API2\s0 for more details. .PP You can optionally pass a font object and font size if you have loaded an external font. .PP .Vb 2 \& my $font_obj = $pdf\->pdf\->ttfont(\*(Aqnew_font.ttf\*(Aq); \& $pdf\->add_font(\*(AqNewFont\*(Aq, $font_obj, \*(Aq12\*(Aq); .Ve .PP Refer to \s-1PDF::API2\s0 for the various font methods, like \f(CW\*(C`ttfont\*(C'\fR, available. .PP \fIset_font \f(CI\*(C`font_name\*(C'\fI[, \f(CI\*(C`pt\*(C'\fI]\fR .IX Subsection "set_font font_name[, pt]" .PP Set the current font by name, and optionally a font size. .PP \fIas_string\fR .IX Subsection "as_string" .PP An alias for the stringify method .PP \fIstringify\fR .IX Subsection "stringify" .PP Ends the current page, and returns the pdf as a string .PP \fIsave [\f(CI\*(C`file\*(C'\fI]\fR .IX Subsection "save [file]" .PP End the current page, and save the document to the file argument, or the file specified when instaniating the object. If not suitable file can be found to save in, a \f(CW\*(C`Carp::croak\*(C'\fR is emitted. Aliases for this method are \f(CW\*(C`saveas\*(C'\fR and \f(CW\*(C`save_as\*(C'\fR. .SS "Layout" .IX Subsection "Layout" These methods modify the actual layout of the \s-1PDF\s0. Note that most of these methods set some internal state. Most often, the last \f(CW\*(C`x\*(C'\fR and \f(CW\*(C`y\*(C'\fR are set after the rendered object. .PP Most times, underscores may be stripped and the arguments will still work, such as is the difference between \f(CW\*(C`fill_color\*(C'\fR, and \f(CW\*(C`fillcolor\*(C'\fR. .PP \fIpopup \f(CI\*(C`text\*(C'\fI[, \f(CI%opts\fI]\fR .IX Subsection "popup text[, %opts]" .PP Creates a 25x25 box at \f(CW\*(C`opts{x}\*(C'\fR (or the current \f(CW\*(C`x\*(C'\fR), \f(CW\*(C`opts{y}\*(C'\fR (or the current \f(CW\*(C`y\*(C'\fR) to represent an annotation at that point. The user may then click that icon for a full annotation. .PP \fIurl\fR .IX Subsection "url" .PP This is an alias for the \f(CW\*(C`link\*(C'\fR method. .PP \fIlink \f(CI\*(C`url\*(C'\fI, \f(CI\*(C`text\*(C'\fI[, \f(CI%opts\fI]\fR .IX Subsection "link url, text[, %opts]" .PP Specifies a link to \f(CW\*(C`url\*(C'\fR, having \f(CW\*(C`text\*(C'\fR. \f(CW%opts\fR may contain: .IP "\(bu" 4 \&\f(CW\*(C`x\*(C'\fR \- The x position of the link. Defaults to \f(CW\*(C`x\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`y\*(C'\fR \- The y position of the link. Defaults to \f(CW\*(C`y\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`limit\*(C'\fR \- The amount to \*(L"limit\*(R" the text. This will add an ellipis (...) a few characters from the end if the text length is greater than this numerical value. Defaults to 0, which is to mean \*(L"do not limit\*(R". .IP "\(bu" 4 \&\f(CW\*(C`align\*(C'\fR \- Which alignment you want for your text. The choices are 'left', 'center', and 'right'. Defaults to 'left'. .IP "\(bu" 4 \&\f(CW\*(C`font\*(C'\fR \- Specifies via font name, the font to use. This sets the current font. .IP "\(bu" 4 \&\f(CW\*(C`font_size\*(C'\fR \- Specifies the font size. This sets the current font size. .IP "\(bu" 4 \&\f(CW\*(C`fill_color\*(C'\fR \- Specifies the fill color. This sets the current fill color. .IP "\(bu" 4 \&\f(CW\*(C`stroke_color\*(C'\fR \- Specifies the stroke color. This sets the current stroke color. .PP This method returns the width of the text. .PP \fItext \f(CI\*(C`text\*(C'\fI[, \f(CI%opts\fI]\fR .IX Subsection "text text[, %opts]" .PP Renders text onto the \s-1PDF\s0. .IP "\(bu" 4 \&\f(CW\*(C`x\*(C'\fR \- The x position of the link. Defaults to \f(CW\*(C`x\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`y\*(C'\fR \- The y position of the link. Defaults to \f(CW\*(C`y\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`limit\*(C'\fR \- The amount to \*(L"limit\*(R" the text. This will add an ellipis (...) a few characters from the end if the text length is greater than this numerical value. Defaults to 0, which is to mean \*(L"do not limit\*(R". .IP "\(bu" 4 \&\f(CW\*(C`align\*(C'\fR \- Which alignment you want for your text. The choices are 'left', 'center', and 'right'. Defaults to 'left'. .IP "\(bu" 4 \&\f(CW\*(C`autoflow\*(C'\fR \- Any value but 'off' will notify this method to use \*(L"autoflowing\*(R" heuristics to gracefully wrap your text over lines and pages. Useful for variable length text. Note that due to laziness, this option is mutually exclusive with \f(CW\*(C`limit\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`font\*(C'\fR \- Specifies via font name, the font to use. This sets the current font. .IP "\(bu" 4 \&\f(CW\*(C`font_size\*(C'\fR \- Specifies the font size. This sets the current font size. .IP "\(bu" 4 \&\f(CW\*(C`fill_color\*(C'\fR \- Specifies the fill color. This sets the current fill color. .IP "\(bu" 4 \&\f(CW\*(C`stroke_color\*(C'\fR \- Specifies the stroke color. This sets the current stroke color. .PP If \f(CW\*(C`autoflow\*(C'\fR was \fBnot\fR specified, this method returns the width of the text in scalar context, the bounding box of the text in list context. In autoflow mode, this method returns nothing. .PP \fIimage \f(CI\*(C`src\*(C'\fI[, \f(CI%opts\fI]\fR .IX Subsection "image src[, %opts]" .PP Renders an image onto the \s-1PDF\s0. The following image types are supported: \s-1JPG\s0, \s-1TIFF\s0, \s-1PNM\s0, \s-1PNG\s0, \s-1GIF\s0, and \s-1PDF\s0. Note that the module determines the image type by file extension. .IP "\(bu" 4 \&\f(CW\*(C`x\*(C'\fR \- The x position of the link. Defaults to \f(CW\*(C`x\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`y\*(C'\fR \- The y position of the link. Defaults to \f(CW\*(C`y\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`width\*(C'\fR \- The width of the image. Defaults to 100. .IP "\(bu" 4 \&\f(CW\*(C`height\*(C'\fR \- The height of the image. Defaults to 100. .IP "\(bu" 4 \&\f(CW\*(C`scale\*(C'\fR \- Amount to scale the image. Defaults to 1. (only available for \s-1PDF\s0 types) .PP \fIline [, \f(CI%opts\fI]\fR .IX Subsection "line [, %opts]" .PP Renders a line onto the \s-1PDF\s0. .IP "\(bu" 4 \&\f(CW\*(C`x\*(C'\fR \- The x position of the line. Defaults to \f(CW\*(C`x\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`y\*(C'\fR \- The y position of the line. Defaults to \f(CW\*(C`y\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`to_x\*(C'\fR \- The x position where to draw the line to. .IP "\(bu" 4 \&\f(CW\*(C`to_y\*(C'\fR \- The y position where to draw the line to. .IP "\(bu" 4 \&\f(CW\*(C`fill_color\*(C'\fR \- Specifies the fill color. This sets the current fill color. Defaults to \f(CW\*(C`current_fill_color\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`stroke_color\*(C'\fR \- Specifies the stroke color. This sets the current stroke color. Defaults to \f(CW\*(C`current_stroke_color\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`width\*(C'\fR \- Specifies the width of the line. Defaults to 0.5. .PP \fIrect [, \f(CI%opts\fI]\fR .IX Subsection "rect [, %opts]" .PP Renders a rectangle onto the \s-1PDF\s0. Rectangles are usually drawn specifying two coordinates diagonal from each other. (5, 5) to (30, 30) for example, would produce a 25 x 25 square. .IP "\(bu" 4 \&\f(CW\*(C`x\*(C'\fR \- The x position of the rect. Defaults to \f(CW\*(C`x\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`y\*(C'\fR \- The y position of the rect. Defaults to \f(CW\*(C`y\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`to_x\*(C'\fR \- The x position where to draw the rect to. .IP "\(bu" 4 \&\f(CW\*(C`to_y\*(C'\fR \- The y position where to draw the rect to. .IP "\(bu" 4 \&\f(CW\*(C`stroke\*(C'\fR \- A value of 'on', 'true', or 'yes' will enable the stroke. Defaults to 'on'. .IP "\(bu" 4 \&\f(CW\*(C`fill\*(C'\fR \- A value of 'on', 'true', or 'yes' will enable the fill. Defaults to 'off'. .IP "\(bu" 4 \&\f(CW\*(C`fill_color\*(C'\fR \- Specifies the fill color. This sets the current fill color. Defaults to \f(CW\*(C`current_fill_color\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`stroke_color\*(C'\fR \- Specifies the stroke color. This sets the current stroke color. Defaults to \f(CW\*(C`current_stroke_color\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`width\*(C'\fR \- Specifies the width of the line. Defaults to 0.5. .SH "PROPERTIES" .IX Header "PROPERTIES" The following properties are read/write, and may be used as \f(CW$pdf\fR\->prop to read, \f(CW$pdf\fR\->prop('val') to set. .SS "header" .IX Subsection "header" Gets/sets the header callback. .SS "footer" .IX Subsection "footer" Gets/sets the footer callback. .SS "file" .IX Subsection "file" Gets/sets the file used to save the \s-1PDF\s0. It's recommended that you \fBdo not set this\fR. .SS "width" .IX Subsection "width" Gets/sets the width of the current page. It's recommended that you \fBdo not set this\fR. .SS "height" .IX Subsection "height" Gets/sets the height of the current page. It's recommended that you \fBdo not set this\fR. .SS "line_height" .IX Subsection "line_height" Gets/sets the default line height. This is used in most space layout methods. .SS "margin_left" .IX Subsection "margin_left" Gets/sets the left margin. .SS "margin_top" .IX Subsection "margin_top" Gets/sets the top margin. .SS "margin_right" .IX Subsection "margin_right" Gets/sets the right margin. .SS "margin_bottom" .IX Subsection "margin_bottom" Gets/sets the bottom margin. .SS "width_right" .IX Subsection "width_right" Gets/sets the calculated value, \f(CW\*(C`width\*(C'\fR \- \f(CW\*(C`margin_right\*(C'\fR .SS "height_bottom" .IX Subsection "height_bottom" Gets/sets the calculated value, \f(CW\*(C`height\*(C'\fR \- \f(CW\*(C`margin_bottom\*(C'\fR .SS "effective_width" .IX Subsection "effective_width" Gets/sets the calculated value, \f(CW\*(C`width\*(C'\fR \- (\f(CW\*(C`margin_left\*(C'\fR + \f(CW\*(C`margin_right\*(C'\fR) .SS "effective_height" .IX Subsection "effective_height" Gets/sets the calculated value, \f(CW\*(C`height\*(C'\fR \- (\f(CW\*(C`margin_top\*(C'\fR + \f(CW\*(C`margin_bottom\*(C'\fR) .SS "current_page" .IX Subsection "current_page" Gets/sets the current page object. It's hard to find a good reason to set this, but it is possible to do so. .SS "pdf" .IX Subsection "pdf" Gets/sets the raw \s-1PDF::API2\s0 object. This allows you great flexibility in your applications. .SS "fonts" .IX Subsection "fonts" Gets/sets the array of fonts we have been storing via the \f(CW\*(C`add_font\*(C'\fR method. .SS "current_font" .IX Subsection "current_font" Gets/sets the current font. .SS "current_font_size" .IX Subsection "current_font_size" Gets/sets the current font size. .SS "current_stroke_color" .IX Subsection "current_stroke_color" Gets/sets the current stroke color. Aliases for this method are \f(CW\*(C`stroke_color\*(C'\fR, and \f(CW\*(C`strokecolor\*(C'\fR .SS "current_fill_color" .IX Subsection "current_fill_color" Gets/sets the current fill color. Aliases for this method are \f(CW\*(C`fontcolor\*(C'\fR, \f(CW\*(C`set_font_color\*(C'\fR, \f(CW\*(C`font_color\*(C'\fR, \f(CW\*(C`fillcolor\*(C'\fR, and \f(CW\*(C`fill_color\*(C'\fR. .SS "x" .IX Subsection "x" Gets/sets the current x position. .SS "y" .IX Subsection "y" Gets/sets the current y position. .SH "BUGS / FIXES" .IX Header "BUGS / FIXES" Please mail all bug reports, fixes, improvements, and suggestions to bugs \-at\- redtreesystems \-dot\- com. .SH "PLUG AND LICENSE" .IX Header "PLUG AND LICENSE" This project belongs to Red Tree Systems, \s-1LLC\s0 \- , but is placed into the public domain in the hopes that it will be educational and/or useful. Red Tree Systems, \s-1LLC\s0 requests that this section be kept intact with any modification of this module, or derivitive work thereof. .SH "THANKS" .IX Header "THANKS" Thanks to Jim Brandt for noting that the default values didn't do well with false values. .PP Thanks to Denis Evdokimov for submitting more margin-fixing goodness. .PP Thanks to Jonathan A. Marshall for fixing a long standing margin issue, and pointing out further documentation shortcomings. .PP Thanks to Jim Brandt for the open method, contributing code to add_font, and offering beer. .PP Thanks to Pradeep N Menon and Alfred Reibenschuh for pointing out optimizaiton issues, and helping to resolve them. .PP Thanks to Simon Wistow for uncovering several bugs and offering up code. .PP Thanks to Bryan Krone for pointing out our documentation shortcomings. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1PDF::API2\s0 .PP There is an examples folder with this dist that should help you get started. You may contact pdfapi2simple \-AT\- redtreesystems _dot_ com for support on an individual or commercial basis.