After researching for printing POS receipts for awhile, I've found a solution to print without using PosBox. I'm writing on here to my personnel reference and might helpful to whom encounter unsolved PosBox problems.
Why not PosBox?
First, I had tried using PosBoxless solution to print the receipts, following the official document. Somehow, the hardware proxy service always crashed after the client connected to Odoo9 server. I might do something wrong.
So that, I recently brought a PosBox and hoped it's going to work for sure. After testing, I found that it could print only a few receipts before the PosBox went offline, and Thai font won't come out. I just got to know PosBox does not support Thai and many languages.
Solution
Actually, POS web can print the receipt via browser, but it's not so convenient as the print preview dialog always popups which requires few more clicks to process printing. The following are how to get rid of those dialogs.
Prerequisite
1. In Windows, please install your ESC/POS printer driver and set the printer as the default printer. Non ESC/POS Printer will be fine too.
2. Set automatic print in Pos setting.
Note that I used EPSON TM-T88IV and Windows 10.
Chrome
There is a feature in Chrome called Kiosk mode which force the browser to run in full screen mode and automatically click the preview dialog.
To set Kiosk mode in Windows
1. Create a new Chrome shortcut
2. Open shortcut Properties (Right-click on the shortcut, select Properties)
3. At Target field, append option --kiosk --kiosk-printing http:// [enter store URL here]
the whole target field would be like this
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --kiosk --kiosk-printing http://localhost:8069
4. Test it. Use Alt+F4 to exit.
Firefox
It's also easy to bypass the print dialog. Please follow the step in https://www.websitesupport.info/hc/en-us/articles/205075144-Bypass-the-Print-Dialog-Box-in-Firefox.
Printing Result
Unlike PosBox which sends line command to the ESC/POS printer and let the printer render graphic itself, browser printing sends whole receipt as an image to ESC/POS printer, so that the print result depend on how the browser render the image and how good the ESC/POS printer handle image.
According to my test, PosBox yields the finest print result. Firefox give an good result but you have to change font style at
in \addons\point_of_sale\static\src\css\pos.css
@media print { ...
.pos .pos-sale-ticket{ ...
font-size: 16px !important;
font-family: Tahoma, Geneva, sans-serif
For Chrome, It's result look a bit distorted no matter you change the font style. However, it's ok to read.