From: Moritz Bunkus Date: Mon, 3 Aug 2020 11:34:03 +0000 (+0200) Subject: ZUGFeRD: Namen der eingebetteten Datei richtig setzen X-Git-Tag: release-3.5.6.1~83 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=c25155ddbc9a68ed2d6ccefe567ddb4776ac0d4c;p=kivitendo-erp.git ZUGFeRD: Namen der eingebetteten Datei richtig setzen 'ucfilespec' wird erst ab PDF 1.7 unterstützt, was wir nicht erzeugen. Daher wurde bisher der Name der temporären Datei auch im PDF als Dateiname verwendet. Jetzt wird korrekt »ZUGFeRD-invoice.xml« als Name des Anhangs im PDF angezeigt. --- diff --git a/SL/Template/LaTeX.pm b/SL/Template/LaTeX.pm index 4915c86a0..b2b6838ab 100644 --- a/SL/Template/LaTeX.pm +++ b/SL/Template/LaTeX.pm @@ -400,6 +400,10 @@ sub _embed_file_directive { my $file_name = blessed($file->{source}) && $file->{source}->can('filename') ? $file->{source}->filename : "" . $file->{source}->filename; my $embed_name = $file->{name} // $file_name; $embed_name =~ s{.*/}{}; + + my $embed_name_ascii = $::locale->quote_special_chars('filenames', $embed_name); + $embed_name_ascii =~ s{[^a-z0-9!@#$%^&*(){}[\],.+'"=_-]+}{}gi; + my @options; my $add_opt = sub { @@ -408,6 +412,7 @@ sub _embed_file_directive { push @options, sprintf('%s={%s}', $name, $value); # TODO: escaping }; + $add_opt->('filespec', $embed_name_ascii); $add_opt->('ucfilespec', $embed_name); $add_opt->('desc', $file->{description}); $add_opt->('afrelationship', $file->{relationship});