Business-ReportWriter

 view release on metacpan or  search on metacpan

lib/Business/ReportWriter/Pdf.pm  view on Meta::CPAN

package Business::ReportWriter::Pdf;

use strict;
use POSIX qw(setlocale LC_NUMERIC);
use utf8;

use base 'Business::ReportWriter';

sub init_fields {
    my ( $self, $parms ) = @_;

    $self->SUPER::fields($parms);
    my @fields = @$parms if $parms;

    # Find maximum line height
    $self->{font}{maxheight} = 8;
    for ( 0 .. $#{ $self->{report}{fields} } ) {
        $self->{fields}{ $fields[$_]{name} } = $_;
        if ( defined( $fields[$_]{font}{size} )
            && $fields[$_]{font}{size} > $self->{font}{_maxheight} )
        {
            $self->{font}{_maxheight} = $fields[$_]{font}{size};
        }
    }
}

sub init_breaks {
    my ( $self, $parms ) = @_;

    $self->SUPER::breaks($parms);

    # Find total break height
    $| = 1;

    for ( keys %$parms ) {
        next if /^_/;
        my $brk  = $parms->{$_};
        my $hbs  = $brk->{beforespace} || 0;
        my $hts  = 10;
        my $hfhs = 10;
        my $ts   = 10;

        #    $self->{fields}{$fields[$_]{name}} = $_;
        #    if (defined($fields[$_]{font}{size}) &&
        #      $fields[$_]{font}{size} > $self->{font}{_maxheight}) {
        #      $self->{font}{_maxheight} = $fields[$_]{font}{size};
        #    }
        $brk->{breakheight} = $hbs + $hts + $hfhs + $ts;
    }
}

# Routines for report writing
sub calc_yoffset {
    my ( $self, $fontsize ) = @_;

    $self->{ypos} -= $fontsize + 2;
    $self->check_page;

    return $self->{ypos};
}

sub page_footer {
    my ( $self, $fontsize ) = @_;



( run in 0.393 second using v1.01-cache-2.11-cpan-ceb78f64989 )