X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FTemplate%2FLaTeX.pm;h=f5062ba838715e5ad3d15b1eb88740a08d13a738;hb=dd2ee66b1d04c3644c48c32b33673463af223077;hp=352f793e12fc25d6aa81a2a399efc06eebed7a36;hpb=232d78687663884df38c106f9089f637509722fd;p=kivitendo-erp.git diff --git a/SL/Template/LaTeX.pm b/SL/Template/LaTeX.pm index 352f793e1..f5062ba83 100644 --- a/SL/Template/LaTeX.pm +++ b/SL/Template/LaTeX.pm @@ -66,6 +66,13 @@ my %html_replace = ( '
' => "\\newline ", ); +sub _lb_to_space { + my ($to_replace) = @_; + + my $vspace = '\vspace*{0.5cm}'; + return $vspace x (length($to_replace) / length($html_replace{'
'})); +} + sub _format_html { my ($self, $content, %params) = @_; @@ -86,7 +93,11 @@ sub _format_html { } split(m{(<.*?>)}x, $content); $content = join '', @parts; - $content =~ s{ (?: [\n\s] | \\newline )+$ }{}gx; + $content =~ s{ (?: [\n\s] | \\newline )+ $ }{}gx; # remove line breaks at the end of the text + $content =~ s{ ^ \s+ }{}gx; # remove white space at the start of the text + $content =~ s{ ^ ( \\newline \ )+ }{ _lb_to_space($1) }gxe; # convert line breaks at the start of the text to vertical space + $content =~ s{ ( \n\n+ ) ( \\newline \ )+ }{ $1 . _lb_to_space($2) }gxe; # convert line breaks at the start of a paragraph to vertical space + $content =~ s{ ( \\end\{ [^\}]+ \} \h* ) ( \\newline \ )+ }{ $1 . _lb_to_space($2) }gxe; # convert line breaks after LaTeX environments like lists to vertical space return $content; } @@ -437,9 +448,9 @@ sub parse { $contents = "[% TAGS $self->{tag_start} $self->{tag_end} %]\n" . $contents; } - $form->prepare_global_vars; + my $globals = global_vars(); - $::form->init_template->process(\$contents, $form, \$new_contents) || die $::form->template->error; + $::form->init_template->process(\$contents, { %$form, %$globals }, \$new_contents) || die $::form->template->error; } else { $new_contents = $self->parse_block($contents); } @@ -626,4 +637,15 @@ sub parse_and_create_pdf { return (file_name => do { $tex_file_name =~ s/tex$/pdf/; $tex_file_name }); } +sub global_vars { + { + AUTH => $::auth, + INSTANCE_CONF => $::instance_conf, + LOCALE => $::locale, + LXCONFIG => $::lx_office_conf, + LXDEBUG => $::lxdebug, + MYCONFIG => \%::myconfig, + }; +} + 1;