X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FRequirementSpec.pm;h=6ba1c4e74ad27002a580e8721802278a537595e0;hb=6e8c0011e9724aa7e06cd04e62fb95dcc97cdf10;hp=875f170733b8bd9c004803ff1b38daab238f5f0e;hpb=e7088e2389156e0bd0e6741c5c98be2c456a6129;p=kivitendo-erp.git diff --git a/SL/Controller/RequirementSpec.pm b/SL/Controller/RequirementSpec.pm index 875f17073..6ba1c4e74 100644 --- a/SL/Controller/RequirementSpec.pm +++ b/SL/Controller/RequirementSpec.pm @@ -23,6 +23,7 @@ use SL::DB::RequirementSpec; use SL::Helper::CreatePDF qw(); use SL::Helper::Flash; use SL::Locale::String; +use SL::System::Process; use SL::Template::LaTeX; use Rose::Object::MakeMethods::Generic @@ -217,9 +218,16 @@ sub action_revert_to { sub action_create_pdf { my ($self, %params) = @_; + my $keep_temp_files = $::lx_office_conf{debug} && $::lx_office_conf{debug}->{keep_temp_files}; + my $temp_dir = File::Temp->newdir( + "kivitendo-print-XXXXXX", + DIR => SL::System::Process::exe_dir() . "/" . $::lx_office_conf{paths}->{userspath}, + CLEANUP => !$keep_temp_files, + ); + my $base_name = $self->requirement_spec->type->template_file_name || 'requirement_spec'; - my @pictures = $self->prepare_pictures_for_printing; - my %result = SL::Template::LaTeX->parse_and_create_pdf("${base_name}.tex", SELF => $self, rspec => $self->requirement_spec); + my @pictures = $self->prepare_pictures_for_printing($temp_dir->dirname); + my %result = SL::Template::LaTeX->parse_and_create_pdf("${base_name}.tex", SELF => $self, rspec => $self->requirement_spec, userspath => $temp_dir->dirname); unlink @pictures unless ($::lx_office_conf{debug} || {})->{keep_temp_files}; @@ -599,11 +607,11 @@ sub render_first_pasted_section_as_list { } sub prepare_pictures_for_printing { - my ($self) = @_; + my ($self, $userspath) = @_; my @files; - my $userspath = File::Spec->rel2abs($::lx_office_conf{paths}->{userspath}); - my $target = "${userspath}/kivitendo-print-requirement-spec-picture-" . Common::unique_id() . '-'; + $userspath ||= SL::System::Process::exe_dir() . "/" . $::lx_office_conf{paths}->{userspath}; + my $target = "${userspath}/kivitendo-print-requirement-spec-picture-" . Common::unique_id() . '-'; foreach my $picture (map { @{ $_->pictures } } @{ $self->requirement_spec->text_blocks }) { my $output_file_name = $target . $picture->id . '.' . $picture->get_default_file_name_extension;