Revision 5db439f8
Von Moritz Bunkus vor mehr als 8 Jahren hinzugefügt
SL/Controller/Letter.pm | ||
---|---|---|
278 | 278 |
} |
279 | 279 |
|
280 | 280 |
my $printer = SL::DB::Printer->new(id => $::form->{printer_id})->load; |
281 |
my $command = SL::Template::create(type => 'ShellCommand', form => Form->new(''))->parse($printer->printer_command); |
|
281 |
$printer->print_document( |
|
282 |
copies => $::form->{copies}, |
|
283 |
file_name => $pdf_file_name, |
|
284 |
); |
|
282 | 285 |
|
283 |
open my $out, '|-', $command or die $!; |
|
284 |
binmode $out; |
|
285 |
print $out scalar(read_file($pdf_file_name)); |
|
286 |
close $out; |
|
287 | 286 |
Common::copy_file_to_webdav_folder($webdav_copy_args) if $::instance_conf->get_webdav_documents; |
288 | 287 |
|
288 |
unlink $pdf_file_name; |
|
289 |
|
|
289 | 290 |
flash_later('info', t8('The documents have been sent to the printer \'#1\'.', $printer->printer_description)); |
290 |
$self->redirect_to(action => 'edit', id => $letter->{id}, 'printer_id' => $::form->{printer_id});
|
|
291 |
$self->redirect_to(action => 'edit', 'letter.id' => $self->letter->id, media => 'printer', printer_id => $::form->{printer_id});
|
|
291 | 292 |
1; |
292 | 293 |
} or do { |
293 | 294 |
unlink $pdf_file_name; |
... | ... | |
331 | 332 |
$::request->layout->add_javascripts('edit_part_window.js'); |
332 | 333 |
|
333 | 334 |
$::form->{language_id} ||= $params{language_id}; |
335 |
$::form->{printers} = SL::DB::Manager::Printer->get_all_sorted; |
|
334 | 336 |
|
335 | 337 |
$self->render('letter/edit', |
336 | 338 |
%params, |
Auch abrufbar als: Unified diff
Brieffunktion: Drucken auf Drucker gefixt
1. Drucker wurden nicht geladen. Daher gab's die Option zum Drucken
direkt auf einen Drucker nicht.
2. Temporäre Druckedateien wurden anschließend nicht gelöscht.
3. Der anschließende Redirect nutzte falsche Variablen und hat daher de
facto auf die Maske zum Anlegen eines neuen Briefs redirectet.