projects
/
kivitendo-erp.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8d6e65b
)
ReportGenerator: Get PDF as binary (no print, no http-redirect)
author
Jan Büren
<jan@kivitendo.de>
Thu, 20 Sep 2018 14:12:06 +0000
(16:12 +0200)
committer
Jan Büren
<jan@kivitendo.de>
Mon, 12 Apr 2021 09:13:44 +0000
(11:13 +0200)
SL/ReportGenerator.pm
patch
|
blob
|
history
diff --git
a/SL/ReportGenerator.pm
b/SL/ReportGenerator.pm
index
75180a9
..
275e2e3
100644
(file)
--- a/
SL/ReportGenerator.pm
+++ b/
SL/ReportGenerator.pm
@@
-486,6
+486,7
@@
sub generate_pdf_content {
};
my $self = shift;
};
my $self = shift;
+ my %params = @_;
my $variables = $self->prepare_html_content();
my $form = $self->{form};
my $myconfig = $self->{myconfig};
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);
}
$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};
}
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,
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 {
$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|;
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.
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.
=item generate_csv_content
The CSV generation function. Uses XS_CSV to parse the information into csv.