diff --git a/src/DataObjects/Printer.php b/src/DataObjects/Printer.php new file mode 100644 index 0000000..30795a8 --- /dev/null +++ b/src/DataObjects/Printer.php @@ -0,0 +1,17 @@ + $reason, ])->successful(); } + + /** + * @return array<\Native\Laravel\DataObjects\Printer> + */ + public function printers(): array + { + $printers = $this->client->get('system/printers')->json('printers'); + + return collect($printers)->map(function ($printer) { + return new Printer( + data_get($printer, 'name'), + data_get($printer, 'displayName'), + data_get($printer, 'description'), + data_get($printer, 'status'), + data_get($printer, 'isDefault'), + data_get($printer, 'options'), + ); + })->toArray(); + } + + public function print(string $html, Printer $printer = null): void + { + $this->client->post('system/print', [ + 'html' => $html, + 'printer' => $printer->name ?? '', + ]); + } }