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"