PHP code example of xslain / laravel-printing
1. Go to this page and download the library: Download xslain/laravel-printing library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
xslain / laravel-printing example snippets
// Network printing
$printJob = Printing::driver('network')
->newPrintTask()
->content('Hello Network Printer!')
->send();
// USB printing
$printJob = Printing::driver('usb')
->newPrintTask()
->content('Hello USB Printer!')
->send();
// View printing
$printJob = Printing::newPrintTask()
->view('printing.invoice', ['data' => $invoiceData])
->pdf(['format' => 'A4'])
->send();
use Xslain\Printing\Facades\Printing;
use Xslain\Printing\Enums\PrintDriver;
// Print to default printer
$task = Printing::newPrintTask()
->content('Hello World!')
->send();
// Print via network
$task = Printing::driver(PrintDriver::Network)
->newPrintTask()
->content('Hello Network Printer!')
->send();
// Print via USB
$task = Printing::driver(PrintDriver::Usb)
->newPrintTask()
->content('Hello USB Printer!')
->send();
// Print a view as PDF
$task = Printing::newPrintTask()
->view('printing.invoice', ['data' => $invoiceData])
->pdf(['format' => 'A4'])
->send();
$task = Printing::driver(PrintDriver::PrintNode)->newPrintTask();
$task = Printing::driver(PrintDriver::Cups)->newPrintTask();
$task = Printing::driver(PrintDriver::Network)->newPrintTask();
$task = Printing::driver(PrintDriver::Usb)->newPrintTask();
$task = Printing::driver(PrintDriver::Raw)->newPrintTask();
// HTML to PDF
$task = Printing::newPrintTask()
->content('<h1>Invoice</h1><p>Amount: $100</p>')
->pdf(['format' => 'A4', 'orientation' => 'portrait'])
->send();
// Save PDF
$pdfPath = Printing::newPrintTask()
->content('<h1>Document</h1>')
->pdf(['format' => 'A4'])
->save('document.pdf');
$receiptData = [
'store_name' => 'My Store',
'receipt_number' => '12345',
'items' => [
['name' => 'Product 1', 'price' => '10.00'],
['name' => 'Product 2', 'price' => '15.00'],
],
'total' => '25.00'
];
$task = Printing::newPrintTask()
->view('printing.receipt', $receiptData)
->pdf(['format' => 'A4'])
->send();
// Basic network printing
$task = Printing::driver(PrintDriver::Network)
->newPrintTask()
->content('Hello Network!')
->send();
// Specify different printer
$task = Printing::driver(PrintDriver::Network)
->newPrintTask()
->printer('192.168.1.101:9100')
->content('Different printer')
->send();
// Send raw data
$driver = Printing::driver(PrintDriver::Network);
$success = $driver->sendRawData('Raw commands', '192.168.1.100', 9100);
// Discover network printers
$printers = Printing::driver(PrintDriver::Network)
->printers(null, null, null, 'scan');
// Basic USB printing
$task = Printing::driver(PrintDriver::Usb)
->newPrintTask()
->content('Hello USB!')
->send();
// ESC/POS commands for thermal printers
$escPos = "\x1B\x40"; // Initialize
$escPos .= "\x1B\x61\x01"; // Center align
$escPos .= "STORE RECEIPT\n";
$escPos .= "\x1B\x61\x00"; // Left align
$escPos .= "Item 1................$10.00\n";
$escPos .= "Total................$10.00\n";
$escPos .= "\x1D\x56\x41\x10"; // Cut paper
$task = Printing::driver(PrintDriver::Usb)
->newPrintTask()
->content($escPos)
->send();
// Discover USB printers
$printers = Printing::driver(PrintDriver::Usb)->printers();
$task = Printing::driver(PrintDriver::Raw)
->newPrintTask()
->content('Raw printing works with any connection type!')
->send();
// Export to Excel
$excel = Printing::newPrintTask()
->export()
->excel($data, 'users.xlsx');
// Export to CSV
$csv = Printing::newPrintTask()
->export()
->csv($data, 'users.csv');
// Import from Excel
$data = Printing::newPrintTask()
->import()
->excel('users.xlsx');
// Import from CSV
$data = Printing::newPrintTask()
->import()
->csv('users.csv');
// Create downloadable file
$download = Printing::newPrintTask()
->content('File content')
->download('filename.txt');
// Force download
return $download->forceDownload();
// Stream download
return $download->stream();
return [
'driver' => env('PRINTING_DRIVER', 'printnode'),
'drivers' => [
'printnode' => [
'key' => env('PRINTING_PRINTNODE_KEY'),
],
'cups' => [
'ip' => env('PRINTING_CUPS_IP', '127.0.0.1'),
'port' => env('PRINTING_CUPS_PORT', 631),
'username' => env('PRINTING_CUPS_USERNAME'),
'password' => env('PRINTING_CUPS_PASSWORD'),
],
'network' => [
'ip' => env('PRINTING_NETWORK_IP'),
'port' => env('PRINTING_NETWORK_PORT', 9100),
'timeout' => env('PRINTING_NETWORK_TIMEOUT', 30),
],
'usb' => [
'device_path' => env('PRINTING_USB_DEVICE_PATH'),
'vendor_id' => env('PRINTING_USB_VENDOR_ID'),
'product_id' => env('PRINTING_USB_PRODUCT_ID'),
'timeout' => env('PRINTING_USB_TIMEOUT', 30),
],
'raw' => [
'connection_type' => env('PRINTING_RAW_CONNECTION_TYPE', 'network'),
'network' => [
'ip' => env('PRINTING_RAW_NETWORK_IP'),
'port' => env('PRINTING_RAW_NETWORK_PORT', 9100),
'timeout' => env('PRINTING_RAW_NETWORK_TIMEOUT', 30),
],
'usb' => [
'device_path' => env('PRINTING_RAW_USB_DEVICE_PATH'),
],
'parallel' => [
'port' => env('PRINTING_RAW_PARALLEL_PORT', 'LPT1'),
],
'serial' => [
'port' => env('PRINTING_RAW_SERIAL_PORT', 'COM1'),
'baud_rate' => env('PRINTING_RAW_SERIAL_BAUD_RATE', 9600),
'data_bits' => env('PRINTING_RAW_SERIAL_DATA_BITS', 8),
'stop_bits' => env('PRINTING_RAW_SERIAL_STOP_BITS', 1),
'parity' => env('PRINTING_RAW_SERIAL_PARITY', 'none'),
],
],
],
];
use Xslain\Printing\Exceptions\PrintingException;
try {
$task = Printing::driver(PrintDriver::Network)
->newPrintTask()
->content('Test print')
->send();
echo "Print successful!";
} catch (PrintingException $e) {
echo "Print failed: " . $e->getMessage();
}
use Xslain\Printing\Facades\Printing;
Printing::extend('custom', function ($config) {
return new CustomDriver($config);
});
$task = Printing::driver('custom')
->newPrintTask()
->content('Custom driver')
->send();
bash
php artisan vendor:publish --tag="printing-config"
bash
php artisan vendor:publish --tag="printing-views"