Hinweis auf doc/umstellung_eur.txt Beim Mandanten anlegen.
[kivitendo-erp.git] / SL / Template / LaTeX.pm
index b70e152..c7d51e0 100644 (file)
@@ -5,6 +5,7 @@ use parent qw(SL::Template::Simple);
 use strict;
 
 use Cwd;
+use Unicode::Normalize qw();
 
 sub new {
   my $type = shift;
@@ -353,8 +354,13 @@ sub parse {
     return 0;
   }
 
-  binmode OUT, ":utf8" if $::locale->is_utf8;
-  print(OUT $new_contents);
+  if ($::locale->is_utf8) {
+    binmode OUT, ":utf8";
+    print OUT Unicode::Normalize::normalize('C', $new_contents);
+
+  } else {
+    print OUT $new_contents;
+  }
 
   if ($form->{"format"} =~ /postscript/i) {
     return $self->convert_to_postscript();
@@ -388,8 +394,7 @@ sub convert_to_postscript {
            "> $form->{tmpfile}.err");
     if ($?) {
       $ENV{HOME} = $old_home;
-      $self->{"error"} = $form->cleanup();
-      $self->cleanup();
+      $self->{"error"} = $form->cleanup($latex);
       return 0;
     }
   }
@@ -401,7 +406,7 @@ sub convert_to_postscript {
 
   if ($?) {
     $self->{"error"} = "dvips : $!";
-    $self->cleanup();
+    $self->cleanup('dvips');
     return 0;
   }
   $form->{tmpfile} =~ s/dvi$/ps/;
@@ -433,9 +438,8 @@ sub convert_to_pdf {
     system("${latex} --interaction=nonstopmode $form->{tmpfile} " .
            "> $form->{tmpfile}.err");
     if ($?) {
-      $ENV{HOME} = $old_home;
-      $self->{"error"} = $form->cleanup();
-      $self->cleanup();
+      $ENV{HOME}     = $old_home;
+      $self->{error} = $form->cleanup($latex);
       return 0;
     }
   }