From: Jan Büren Date: Thu, 20 Sep 2018 14:12:06 +0000 (+0200) Subject: ReportGenerator: Get PDF as binary (no print, no http-redirect) X-Git-Tag: kivitendo-mebil_0.1-0~9^2~368 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=078bf25d3aa259acedb0cdd8905fc3a6e36e874d;p=kivitendo-erp.git ReportGenerator: Get PDF as binary (no print, no http-redirect) --- diff --git a/SL/ReportGenerator.pm b/SL/ReportGenerator.pm index 75180a91c..275e2e33a 100644 --- a/SL/ReportGenerator.pm +++ b/SL/ReportGenerator.pm @@ -486,6 +486,7 @@ sub generate_pdf_content { }; my $self = shift; + my %params = @_; my $variables = $self->prepare_html_content(); my $form = $self->{form}; my $myconfig = $self->{myconfig}; @@ -718,13 +719,17 @@ sub generate_pdf_content { $content = $self->append_gl_pdf_attachments($form,$content); } + # 1. check if we return the report as binary pdf + if ($params{want_binary_pdf}) { + return $content; + } + # 2. check if we want and can directly print the report my $printer_command; if ($pdfopts->{print} && $pdfopts->{printer_id}) { $form->{printer_id} = $pdfopts->{printer_id}; $form->get_printer_code($myconfig); $printer_command = $form->{printer_command}; } - if ($printer_command) { $self->_print_content('printer_command' => $printer_command, 'content' => $content, @@ -732,6 +737,7 @@ sub generate_pdf_content { $form->{report_generator_printed} = 1; } else { + # 3. default: redirect http with file attached my $filename = $self->get_attachment_basename(); print qq|content-type: application/pdf\n|; @@ -975,6 +981,11 @@ The html generation function. Is invoked by generate_with_headers. The PDF generation function. It is invoked by generate_with_headers and renders the PDF with the PDF::API2 library. +If the param want_binary_pdf is set, the binary pdf stream will be returned. +If $pdfopts->{print} && $pdfopts->{printer_id} are set, the pdf will be printed (output is directed to print command). + +Otherwise and the default a html form with a downloadable file is returned. + =item generate_csv_content The CSV generation function. Uses XS_CSV to parse the information into csv.