X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FTemplate%2FLaTeX.pm;h=c6d54d5934a601488ac2e9480734d1363592ee31;hb=21c964b9ec4972346d9c6b7fef370268b4caf789;hp=c7d51e0e00bd87e2b35a6c72ab26e2c2964a881f;hpb=8084ef359515031ec8429b49baf0ab09858f55d2;p=kivitendo-erp.git diff --git a/SL/Template/LaTeX.pm b/SL/Template/LaTeX.pm index c7d51e0e0..c6d54d593 100644 --- a/SL/Template/LaTeX.pm +++ b/SL/Template/LaTeX.pm @@ -63,47 +63,6 @@ sub parse_foreach { $form->{"__odd__"} = (($i + 1) % 2) == 1; $form->{"__counter__"} = $i + 1; - if ( ref $description_array eq 'ARRAY' - && scalar @{$description_array} == scalar @{$ary} - && $self->{"chars_per_line"} != 0) - { - my $lines = int(length($description_array->[$i]) / $self->{"chars_per_line"}); - my $lpp; - - $description_array->[$i] =~ s/(\\newline\s?)*$//; - $lines++ while ($description_array->[$i] =~ m/\\newline/g); - $lines++; - - if ($current_page == 1) { - $lpp = $self->{"lines_on_first_page"}; - } else { - $lpp = $self->{"lines_on_second_page"}; - } - - # Yes we need a manual page break -- or the user has forced one - if ( (($current_line + $lines) > $lpp) - || ($description_array->[$i] =~ //) - || ( ref $longdescription_array eq 'ARRAY' - && $longdescription_array->[$i] =~ //)) { - my $pb = $self->{"pagebreak_block"}; - - # replace the special variables <%sumcarriedforward%> - # and <%lastpage%> - - my $psum = $form->format_amount($self->{"myconfig"}, $sum, 2); - $pb =~ s/$self->{tag_start_qm}sumcarriedforward$self->{tag_end_qm}/$psum/g; - $pb =~ s/$self->{tag_start_qm}lastpage$self->{tag_end_qm}/$current_page/g; - - my $new_text = $self->parse_block($pb, (@indices, $i)); - return undef unless (defined($new_text)); - $new_contents .= $new_text; - - $current_page++; - $current_line = 0; - } - $current_line += $lines; - } - if ( ref $linetotal_array eq 'ARRAY' && $i < scalar(@{$linetotal_array})) { $sum += $form->parse_amount($self->{"myconfig"}, $linetotal_array->[$i]); @@ -336,18 +295,6 @@ sub parse { my $contents = join("", @lines); - # detect pagebreak block and its parameters - if ($contents =~ /$self->{tag_start_qm}pagebreak\s+(\d+)\s+(\d+)\s+(\d+)\s*$self->{tag_end_qm}(.*?)$self->{tag_start_qm}end(\s*pagebreak)?$self->{tag_end_qm}/s) { - $self->{"chars_per_line"} = $1; - $self->{"lines_on_first_page"} = $2; - $self->{"lines_on_second_page"} = $3; - $self->{"pagebreak_block"} = $4; - - substr($contents, length($`), length($&)) = ""; - } - - $self->{"forced_pagebreaks"} = []; - my $new_contents = $self->parse_block($contents); if (!defined($new_contents)) { $main::lxdebug->leave_sub(); @@ -387,13 +334,16 @@ sub convert_to_postscript { my $latex = $self->_get_latex_path(); my $old_home = $ENV{HOME}; - $ENV{HOME} = $userspath =~ m|^/| ? $userspath : getcwd() . "/" . $userspath; + my $old_openin_any = $ENV{openin_any}; + $ENV{HOME} = $userspath =~ m|^/| ? $userspath : getcwd(); + $ENV{openin_any} = "p"; for (my $run = 1; $run <= 2; $run++) { system("${latex} --interaction=nonstopmode $form->{tmpfile} " . "> $form->{tmpfile}.err"); if ($?) { $ENV{HOME} = $old_home; + $ENV{openin_any} = $old_openin_any; $self->{"error"} = $form->cleanup($latex); return 0; } @@ -403,6 +353,7 @@ sub convert_to_postscript { system("dvips $form->{tmpfile} -o -q > /dev/null"); $ENV{HOME} = $old_home; + $ENV{openin_any} = $old_openin_any; if ($?) { $self->{"error"} = "dvips : $!"; @@ -432,19 +383,23 @@ sub convert_to_pdf { my $latex = $self->_get_latex_path(); my $old_home = $ENV{HOME}; - $ENV{HOME} = $userspath =~ m|^/| ? $userspath : getcwd() . "/" . $userspath; + my $old_openin_any = $ENV{openin_any}; + $ENV{HOME} = $userspath =~ m|^/| ? $userspath : getcwd(); + $ENV{openin_any} = "p"; for (my $run = 1; $run <= 2; $run++) { system("${latex} --interaction=nonstopmode $form->{tmpfile} " . "> $form->{tmpfile}.err"); if ($?) { $ENV{HOME} = $old_home; + $ENV{openin_any} = $old_openin_any; $self->{error} = $form->cleanup($latex); return 0; } } $ENV{HOME} = $old_home; + $ENV{openin_any} = $old_openin_any; $form->{tmpfile} =~ s/tex$/pdf/; $self->cleanup();