package My::Module; use warnings; use strict; use File::Path; use Template::Latex; use Template::Constants qw( :debug ); use Template::Filters; use base 'CGI::FormBuilder::Config::Simple'; sub new { my $class = shift; my $ini = shift; # creates a Config::Simple object; # creates a DBI::db object return $self; } sub render_pdf_report { my $self = shift; my $field = shift; my $template = $self->{'cfg'}->param("pdf.template"); $self->{'pdf_output_path'} = $self->{'cfg'}->param("pdf.output_path") . $field->{'region'} . '/' . $self->{'cfg'}->param("pdf.report_type"); $self->{'pdf_output_path'} =~ s/\ /_/g; chomp($self->{'pdf_output_path'}); unless( -d $self->{'pdf_output_path'} ){ mkpath $self->{'pdf_output_path'}; } $self->{'pdf_output'} = 'wkly_rpt_' . $field->{'region'} . '_' . $field->{'report_id'} . $self->{'cfg'}->param("pdf.suffix") . '.pdf'; $self->{'pdf_output'} =~ s/\ /_/g; chomp($self->{'pdf_output'}); $field->{'pdf_output'} = $self->{'pdf_output'}; $self->{'latex_paths'} = Template::Latex->latex_paths(); $self->{'tt'} = Template::Latex->new({ DEBUG => DEBUG_FILTERS | DEBUG_PLUGINS, INCLUDE_PATH => $self->{'cfg'}->param("pdf.include_path"), OUTPUT_PATH => $self->{'pdf_output_path'}, LATEX_FORMAT => 'pdf' }); $Template::Latex::DEBUG = 1; $self->{'tt'}->process($template,{ field => $field },$self->{'pdf_output'},binmode => 1) || die $self->{'tt'}->error(); my $tmp_file = $self->{'pdf_output_path'} . 'example.pdf'; my $file = $self->{'pdf_output_path'} . $self->{'pdf_output'}; rename $tmp_file, $file; return; }