Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision f08036d7

Von Moritz Bunkus vor mehr als 8 Jahren hinzugefügt

  • ID f08036d731f13eb80ac63b951b1c9da77693867a
  • Vorgänger f1906106
  • Nachfolger 5db439f8

SL::DB::Printer: »Dokument an Drucker schicken« zentralisiert

Die neue Funktion print_document übernimmt das Spawnen des externen
Prozesses und schickt das Dokument an den Drucker. Das Dokument kann
entweder direkt als Inhalt oder als zu sendender Dateiname übergeben
werden.

Unterschiede anzeigen:

SL/Controller/Order.pm
182 182
  } elsif ($media eq 'printer') {
183 183
    # printer
184 184
    my $printer_id = $::form->{print_options}->{printer_id};
185
    my $printer;
186
    $printer = SL::DB::Printer->new(id => $printer_id)->load if $printer_id;
187
    if (!$printer) {
188
      return $self->js->flash('error', t8('Printer not found.'))->render;
189
    }
190

  
191
    my $command = SL::Template::create(type => 'ShellCommand', form => Form->new(''))->parse($printer->printer_command);
192

  
193
    for my $i (1 .. $copies) {
194
      open my $out, '|-', $command or die $!;
195
      binmode $out;
196
      print $out $pdf;
197
      close $out;
198
    }
185
    SL::DB::Printer->new(id => $printer_id)->load->print_document(
186
      copies  => $copies,
187
      content => $pdf,
188
    );
199 189

  
200 190
    $self->js->flash('info', t8('The PDF has been printed'));
201 191
  }

Auch abrufbar als: Unified diff