Chrome Direct Print (Silent Print with multiple printer support)

“Chrome Direct Print” is abandoned in favor of “WebApp Hardware Bridge
Which support all modern browsers (Chrome, Firefox, Edge),
with better compatibility, performance and serial port support.

The most challenging (and missing) part of Web-based applications (especially internal systems) is printing.
Browsers do not allow silent printing and users demand it heavily.

Chrome Direct Print” bridge the gap between Printer and Web Apps.

** Support Windows, Chrome and PDF only **

Technical Explanations

“Chrome Direct Print” make use of “Native Messaging API” to communicate with processes (aka host).

The “host” is written in Python, which is responsible for enumerating printers,
download PDF documents, and finally calling embed PDF reader to send PDF to printer.

Source Codes

This project is no longer maintained.
Source code here are for reference and study purpose only.


Chrome Extension:

NSIS Installer:


Chrome Extension:


User Manual:

Web App Usage:

[WSL] PHP Development Environment by “Windows Subsystem for Linux” (Part 1)

This article requires Windows 10 (Build Version 1709 [The Fall Creators Update]) or above to work.

Although WSL exists since Version 1607 [Anniversary Update], it’s harder to setup and more buggy.

In this tutorial we will setup this development environment in WSL (In Part 1)
Apache 2.4
MySQL 5.7
PHP 7.2 (Run as FPM)

With those tools under Windows 10 (In Part 2)
Bash and Linux CLI tools
PHP Deployer

Continue reading “[WSL] PHP Development Environment by “Windows Subsystem for Linux” (Part 1)”

Laravel Queue: Job Class demystified (ShouldQueue, Dispatchable, InteractsWithQueue, Queueable, SerializesModels)

Laravel is awesome, but personally I don’t appreciate their documentation as it seems always “beginner orientated”.

They trend make simple things automagically happen, without let you knowing how it works.

They you get into trouble when you need advanced functionality.

Say, you get this boilerplate when typing php artisan make:job TestJob:

So, what actually are ShouldQueue, Dispatchable, InteractsWithQueue, Queueable, SerializesModels?
Documentation won’t tell you, even if you read the API Reference, you have little idea what they means.

Continue reading “Laravel Queue: Job Class demystified (ShouldQueue, Dispatchable, InteractsWithQueue, Queueable, SerializesModels)”