oracular (3) PDF::Report.3pm.gz

Provided by: libpdf-report-perl_1.36-2_all bug

NAME

       PDF::Report - A wrapper written for PDF::API2

SYNOPSIS

               use PDF::Report;

           my $pdf = new PDF::Report(%opts);

DESCRIPTION

       This is a wrapper for Alfred Reibenschuh's PDF::API2 Defines methods to create PDF reports

VERSION

        1.36

METHODS

   new
       my $pdf = new PDF::Report(%opts);

               Creates a new pdf report object.
               If no %opts are specified the module
               will use the factory defaults.

       Example:

               my $pdf = new PDF::Report(PageSize => "letter",
                                         PageOrientation => "Landscape");

               my $pdf = new PDF::Report(File => $file);

       %opts:

               PageSize - '4A', '2A', 'A0', 'A1', 'A2',
                          'A3', 'A4', 'A5', 'A6', '4B',
                          '2B', 'B0', 'B1', 'B2', 'B3',
                          'B4', 'B5', 'B6', 'LETTER',
                          'BROADSHEET', 'LEDGER', 'TABLOID',
                          'LEGAL', 'EXECUTIVE', '36X36'

               PageOrientation - 'Portrait', 'Landscape'

   newpage
       $pdf->newpage($nopage);

       Creates a new blank page.  Pass $nopage = 1 to toggle page numbering.

   openpage
       $pdf->openpage($index);

       If no index is specified, this will open the last page of the document.

   importpage
       Import page from another PDF document, see PDF::API2

   clonepage
       Clone page within document, see PDF::API2

   getPageDimensions
       ($pagewidth, $pageheight) = $pdf->getPageDimensions();

       Returns the width and height of the page according to what page size chosen in "new".

   addRawText
       $pdf->addRawText($text, $x, $y, $color, $underline, $indent, $rotate);

       Add $text at position $x, $y with $color, $underline, $indent and/or $rotate.

       PDF::API2 Removes all space between every word in the string you pass and then rejoins each word with one
       space.  If you want to use a string with more than one space between words for formatting purposes, you
       can either use the hack below or change PDF::API2 (that's what I did ;).  The code below may or may not
       work according to what font you are using.  I used 2 \xA0 per space because that worked for the Helvetica
       font I was using.

       To use a fixed width string with more than one space between words, you can do something like:

           sub replaceSpace {
             my $text = shift;
             my $nbsp = "\xA0";
             my $new = '';
             my @words = split(/ /, $text);
             foreach my $word (@words) {
               if (length($word)) {
                 $new.=$word . ' ';
               } else {
                 $new.=$nbsp . $nbsp;
               }
             }
             chop($new);
             return $new;
           }

   setAddTextPos
       $pdf->setAddTextPos($hPos, $vPos);

       Set the position on the page.  Used by the addText function.

   getAddTextPos
       ($hPos, $vPos) = $pdf->getAddTextPos();

       Return the (x, y) value of the text position.

   setAlign
       $pdf->setAlign($align);

       Set the justification of the text.  Used by the addText function.

   getAlign
       $align = $pdf->getAlign();

       Returns the text justification.

   wrapText
       $newtext = $pdf->wrapText($text, $width);

       This is a helper function called by addText, which can be called by itself.  wrapText() wraps $text
       within $width.

   addText
       $pdf->addText($text, $hPos, $textWidth, $textHeight);

       Takes $text and prints it to the current page at $hPos.  You may just want to pass this function $text if
       the text is "pre-wrapped" and setAddTextPos has been called previously.  Pass a $hPos to change the
       position the text will be printed on the page.  Pass a  $textWidth and addText will wrap the text for
       you.  $textHeight controls the row height.

   addParagraph
       $pdf->addParagraph($text, $hPos, $vPos, $width, $height, $indent, $lead);

       Add $text at ($hPos, $vPos) within $width and $height, with $indent.  $indent is the number of spaces at
       the beginning of the first line.

   centerString
       $pdf->centerString($a, $b, $yPos, $text);

       Centers $text between points $a and $b at position $yPos.  Be careful how much text you try to jam
       between those points, this function shrinks the text till it fits!

   setRowHeight
   getStringWidth
       $pdf->getStringWidth($String);

       Returns the width of $String according to the current font and fontsize being used.

   addImg
       $pdf->addImg($file, $x, $y);

       Add image $file to the current page at position ($x, $y).

   addImgScaled
       $pdf->addImgScaled($file, $x, $y, $scale);

       Add image $file to the current page at position ($x, $y) scaled to $scale.

   setGfxLineWidth
       $pdf->setGfxLineWidth($width);

       Set the line width drawn on the page.

   getGfxLineWidth
       $width = $pdf->getGfxLineWidth();

       Returns the current line width.

   drawLine
       $pdf->drawLine($x1, $y1, $x2, $y2);

       Draw a line on the current page starting at ($x1, $y1) and ending at ($x2, $y2).

   drawRect
       $pdf->drawRect($x1, $y1, $x2, $y2);

       Draw a rectangle on the current page.  Top left corner is represented by ($x1, $y1) and the bottom right
       corner is ($x2, $y2).

   shadeRect
       $pdf->shadeRect($x1, $y1, $x2, $y2, $color);

       Shade a rectangle with $color.  Top left corner is ($x1, $y1) and the bottom right corner is ($x2, $y2).

       Defined color-names are:
           aliceblue, antiquewhite, aqua, aquamarine, azure, beige, bisque, black, blanchedalmond, blue,
           blueviolet, brown, burlywood, cadetblue, chartreuse, chocolate, coral, cornflowerblue, cornsilk,
           crimson, cyan, darkblue, darkcyan, darkgoldenrod, darkgray, darkgreen, darkgrey, darkkhaki,
           darkmagenta, darkolivegreen, darkorange, darkorchid, darkred, darksalmon, darkseagreen,
           darkslateblue, darkslategray, darkslategrey, darkturquoise, darkviolet, deeppink, deepskyblue,
           dimgray, dimgrey, dodgerblue, firebrick, floralwhite, forestgreen, fuchsia, gainsboro, ghostwhite,
           gold, goldenrod, gray, grey, green, greenyellow, honeydew, hotpink, indianred, indigo, ivory, khaki,
           lavender, lavenderblush, lawngreen, lemonchiffon, lightblue, lightcoral, lightcyan,
           lightgoldenrodyellow, lightgray, lightgreen, lightgrey, lightpink, lightsalmon, lightseagreen,
           lightskyblue, lightslategray, lightslategrey, lightsteelblue, lightyellow, lime, limegreen, linen,
           magenta, maroon, mediumaquamarine, mediumblue, mediumorchid, mediumpurple, mediumseagreen,
           mediumslateblue, mediumspringgreen, mediumturquoise, mediumvioletred, midnightblue, mintcream,
           mistyrose, moccasin, navajowhite, navy, oldlace, olive, olivedrab, orange, orangered, orchid,
           palegoldenrod, palegreen, paleturquoise, palevioletred, papayawhip, peachpuff, peru, pink, plum,
           powderblue, purple, red, rosybrown, royalblue, saddlebrown, salmon, sandybrown, seagreen, seashell,
           sienna, silver, skyblue, slateblue, slategray, slategrey, snow, springgreen, steelblue, tan, teal,
           thistle, tomato, turquoise, violet, wheat, white, whitesmoke, yellow, yellowgreen

           or the rgb-hex-notation:

                   #rgb, #rrggbb, #rrrgggbbb and #rrrrggggbbbb

           or the cmyk-hex-notation:

                   %cmyk, %ccmmyykk, %cccmmmyyykkk and %ccccmmmmyyyykkkk

           and additionally the hsv-hex-notation:

                   !hsv, !hhssvv, !hhhsssvvv and !hhhhssssvvvv

   drawPieGraph
       $pdf->drawPieGraph($x, $y, $size, $rData, $rLabels);

       Method to create a piegraph using a reference to an array of values.  It also takes a reference to an
       array for labels for each data value.  A legend with all the colors and labels will appear if $rLabels is
       passed. $x and $y are the coordinates for the center of the pie and $size is the radius.

   getcolors
       Returns list of available colours

   drawBarcode
       $pdf->drawBarcode($x, $y, $scale, $frame, $type, $code, $extn, $umzn,
                               $lmzn, $zone, $quzn, $spcr, $ofwt, $fnsz, $text);

       This is really not that complicated, trust me! ;) I am pretty unfamiliar with barcode lingo and types so
       if I get any of this wrong, lemme know!  This is a very flexible way to draw a barcode on your PDF
       document.  $x and $y represent the center of the barcode's position on the document.  $scale is the size
       of the entire barcode 1 being 1:1, which is all you'll need most likely.  $type is the type of barcode
       which can be codabar, 2of5int, 3of9, code128, or ean13.  $code is the alpha-numeric code which the
       barcode will represent.  $extn is the extension to the $code, where applicable.  $umzn is the upper
       mending zone and $lmzn is the lower mending zone. $zone is the the zone or height of the bars.  $quzn is
       the quiet zone or the space between the frame and the barcode.  $spcr is what to put between each
       number/character in the text.  $ofwt is the overflow width.  $fnsz is the fontsize used for the text.
       $text is optional text beneathe the barcode.

   setFont
       $pdf->setFont($font);

       Creates a new font object of type $font to be used in the page.

   getFont
       $fontname = $pdf->getFont();

       Returns the font name currently being used.

   setSize
       $pdf->setSize($size);

       Sets the fontsize to $size.  Called before setFont().

   getSize
       $fontsize = $pdf->getSize();

       Returns the font size currently being used.

   pages
       $pages = $pdf->pages();

       The number of pages in the document.

   setInfo
       $pdf->setInfo(%infohash);

       Sets the info structure of the document.  Valid keys for %infohash: Creator, Producer, CreationDate,
       Title, Subject, Author, etc.

   getInfo
       %infohash = $pdf->getInfo();

       Gets meta-data from the info structure of the document.  Valid keys for %infohash: Creator, Producer,
       CreationDate, Title, Subject, Author, etc.

   saveAs
       Saves the document to a file.

         # Save the document as "file.pdf"
         my $fileName = "file.pdf";
         $pdf->saveAs($fileName);

   Finish
       Returns the PDF document as text.  Pass your own custom routine to do things on the footer of the page.
       Pass 'roman' for Roman Numeral page numbering.

               # Hand the document to the web browser
               print "Content-type: application/pdf\n\n";
               print $pdf->Finish();

   getPDFAPI2Object
       Object method returns underlying PDF::API2 object

AUTHOR EMERITUS

       Andrew Orr

MAINTAINER

       Aaron TEEJAY Trevena

BUGS

       Please report any bugs or feature requests to "bug-calendar-model at rt.cpan.org", or through the web
       interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=PDF-Report>.  I will be notified, and then
       you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

       You can find documentation for this module with the perldoc command.

           perldoc PDF::Report

       You can also look for information at:

       •   RT: CPAN's request tracker (report bugs here)

           <http://rt.cpan.org/NoAuth/Bugs.html?Dist=PDF-Report>

       •   AnnoCPAN: Annotated CPAN documentation

           <http://annocpan.org/dist/PDF-Report>

       •   CPAN Ratings

           <http://cpanratings.perl.org/d/PDF-Report>

       •   METACPAN

           <https://metacpan.org/module/PDF::Report/>

       •   GITHUB

           <https://github.com/hashbangperl/perl-pdf-report>

SEE ALSO

       PDF::API2

       Copyright 2008-2010 Andy Orr

       Copyright 2013 Aaron Trevena

       This program is free software; you can redistribute it and/or modify it under the terms of either: the
       GNU General Public License as published by the Free Software Foundation; or the Artistic License.

       See <http://dev.perl.org/licenses/> for more information.