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 )