Laravel Printing allows your application to directly send PDF documents or raw text directly from a remote server
to a printer on your local network. Receipts can also be printed by first generating the raw text via the Rawilk\Printing\Receipts\ReceiptPrinter
class, and then sending the text as a raw print job via the Printing
facade.
$printJob = Printing::newPrintTask()
->printer($printerId)
->file('path_to_file.pdf')
->send();
$printJob->id(); // the id number returned from the print server
Supported Print Drivers:
- PrintNode: https://printnode.com
- CUPS: https://cups.org
For documentation, please visit: https://randallwilk.dev/docs/laravel-printing
You can install the package via composer:
composer require rawilk/laravel-printing
You can publish the config file with:
php artisan vendor:publish --provider="Rawilk\Printing\PrintingServiceProvider" --tag="config"
This is the contents of the published config file:
return [
/*
|--------------------------------------------------------------------------
| Driver
|--------------------------------------------------------------------------
|
| Supported: `printnode`, `cups`
|
*/
'driver' => env('PRINTING_DRIVER', 'printnode'),
/*
|--------------------------------------------------------------------------
| Drivers
|--------------------------------------------------------------------------
|
| Configuration for each driver.
|
*/
'drivers' => [
'printnode' => [
'key' => env('PRINT_NODE_API_KEY'),
],
'cups' => [
'ip' => env('CUPS_SERVER_IP'),
'username' => env('CUPS_SERVER_USERNAME'),
'password' => env('CUPS_SERVER_PASSWORD'),
'port' => env('CUPS_SERVER_PORT', 631),
],
/*
* Add your custom drivers here:
*
* 'custom' => [
* 'driver' => 'custom_driver',
* // other config for your custom driver
* ],
*/
],
/*
|--------------------------------------------------------------------------
| Default Printer Id
|--------------------------------------------------------------------------
|
| If you know the id of a default printer you want to use, enter it here.
|
*/
'default_printer_id' => null,
/*
|--------------------------------------------------------------------------
| Receipt Printer Options
|--------------------------------------------------------------------------
|
*/
'receipts' => [
/*
* How many characters fit across a single line on the receipt paper.
* Adjust according to your needs.
*/
'line_character_length' => 45,
/*
* The width of the print area in dots.
* Adjust according to your needs.
*/
'print_width' => 550,
/*
* The height (in dots) barcodes should be printed normally.
*/
'barcode_height' => 64,
/*
* The width (magnification) each barcode should be printed in normally.
*/
'barcode_width' => 2,
],
];
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email randall@randallwilk.dev instead of using the issue tracker.
- Randall Wilk
- All Contributors
- Mike42 for the PHP ESC/POS Print Driver library
The MIT License (MIT). Please see License File for more information.