=item print_latex [ TIME [ , TEMPLATE ] ]
Internal method - returns a filename of a filled-in LaTeX template for this
-invoice (Note: add ".tex" to get the actual filename).
+invoice (Note: add ".tex" to get the actual filename), and a filename of
+an associated logo (with the .eps extension included).
See print_ps and print_pdf for methods that return PostScript and PDF output.
'quantity' => 1,
'terms' => $conf->config('invoice_default_terms') || 'Payable upon receipt',
#'notes' => join("\n", $conf->config('invoice_latexnotes') ),
+ # better hang on to conf_dir for a while
'conf_dir' => "$FS::UID::conf_dir/conf.$FS::UID::datasrc",
);
}
my $dir = $FS::UID::conf_dir. "cache.". $FS::UID::datasrc;
+ my $lh = new File::Temp( TEMPLATE => 'invoice.'. $self->invnum. '.XXXXXXXX',
+ DIR => $dir,
+ SUFFIX => '.eps',
+ UNLINK => 0,
+ ) or die "can't open temp file: $!\n";
+
+ if ($template && $conf->exists("logo_${template}.eps")) {
+ print $lh $conf->config_binary("logo_${template}.eps")
+ or die "can't write temp file: $!\n";
+ }else{
+ print $lh $conf->config_binary('logo.eps')
+ or die "can't write temp file: $!\n";
+ }
+ close $lh;
+ $invoice_data{'logo_file'} = $lh->filename;
+
my $fh = new File::Temp( TEMPLATE => 'invoice.'. $self->invnum. '.XXXXXXXX',
DIR => $dir,
SUFFIX => '.tex',
close $fh;
$fh->filename =~ /^(.*).tex$/ or die "unparsable filename: ". $fh->filename;
- return $1;
+ return ($1, $invoice_data{'logo_file'});
}
sub print_ps {
my $self = shift;
- my $file = $self->print_latex(@_);
+ my ($file, $lfile) = $self->print_latex(@_);
my $dir = $FS::UID::conf_dir. "cache.". $FS::UID::datasrc;
chdir($dir);
or die "can't open $file.ps: $! (error in LaTeX template?)\n";
unlink("$file.dvi", "$file.log", "$file.aux", "$file.ps", "$file.tex");
+ unlink("$lfile");
my $ps = '';
while (<POSTSCRIPT>) {
sub print_pdf {
my $self = shift;
- my $file = $self->print_latex(@_);
+ my ($file, $lfile) = $self->print_latex(@_);
my $dir = $FS::UID::conf_dir. "cache.". $FS::UID::datasrc;
chdir($dir);
or die "can't open $file.pdf: $! (error in LaTeX template?)\n";
unlink("$file.dvi", "$file.log", "$file.aux", "$file.pdf", "$file.tex");
+ unlink("$lfile");
my $pdf = '';
while (<PDF>) {