Receipt designer for thermal printers - Free and open source

In the last months I have been working on a ticket designer to print on thermal printers by using ESC POS commands. The free ESC POS thermal printer designer is web-based and can be used to create your own invoices, whether sales receipt, sales invoice, purchase receipt and any other design to print on thermal printers. If you want, you can try it right now with the link below, but I recommend you review the content of the post before trying it: https://parzibyte.me/apps/ticket-designer/#/first-steps You will be able to print images, formatted text, tables, QR codes, barcodes, cut the paper, advance it, open the cash drawer and design any receipt for your POS printer. This will work with USB printers on Windows, Linux and Raspberry; as well as Bluetooth printers on Android. All using the same ESC POS receipt designer. ...

January 5, 2024 · 5 min · 1051 words · Parzibyte

JavaScript: download file with fetch

In this post you will learn how to download a file in the background using client-side JavaScript and the fetch function to make HTTP requests. We will see how to download a file as a blob using AJAX and then ask the user where to save it, suggesting a name. The good thing about this is that we can send parameters to request the download of the file (for example, we can send a password over a POST request if the server requires it). ...

October 6, 2023 · 2 min · 351 words · Parzibyte

JavaScript: store and read files with the Origin Private File System

In this post you will learn how to use the Origin Private File System with JavaScript to store, read and remove any file on the web browser. You may try the demo here: https://stackblitz.com/edit/vitejs-vite-hl34zf?file=index.html As I said before, the Origin Private File System has arrived to revolutionize things with JavaScript. Thanks to OPFS we can have a complete file system with JavaScript directly in the web browser. With this new technology, we can write any type of file in the web browser, as well as download it later. All of this without depending on localStorage or similar things; It is a different technology. Text documents, images, videos and even databases can be saved, and there is no need to ask the user for permission or confirmation, everything is transparent. ...

October 6, 2023 · 5 min · 1064 words · Parzibyte

SQLite3 with vanilla JavaScript and OPFS - Hello world

In this post I will show you how to use SQLite3 directly in the web browser using the original C library through WebAssembly and OPFS to store the database. In this way we will have original SQLite3 on the web to work in the browser with JS on the client side. We can do this with pure JavaScript or with any framework; but I will show you a basic and well explained example of SQLite3 with vanilla JavaScript. Then I’ll show you an example with Tailwind, Svelte and Progressive Web apps. ...

August 8, 2023 · 6 min · 1086 words · Parzibyte

Image printing on Thermal printer

When printing receipts on thermal printers (ESC POS) sometimes it is needed to print images of any type, for example, to print the customer’s logo and so on. In this post I will show you how to print any kind of images: you will be able to print local images, base64 images and internet images. Please note that we will print images on thermal printer by using JavaScript, but once you learn how to do it with JS you will be able to do it from another programming languages. ...

July 5, 2023 · 4 min · 804 words · Parzibyte

Print diacritic text in thermal printer - ESC POS commands

In this post I will show you how to print spanish text, text with accents or ñ letters on a thermal printer. I have been searching for this for a long time and now I want to share it. Printing spanish text or diacritict text is necessary because sometimes the customer’s names or data contains some chars out of the ASCII range. I will show you how to do this with JavaScript directly from the browser, but once you understand it, you will be able to print from any programming language. ...

July 5, 2023 · 5 min · 913 words · Parzibyte

Python Thermal Printing: A Comprehensive Guide for Printing on Thermal Printers

In this tutorial, we’ll explore how to effortlessly print receipts, invoices, and tickets on a thermal printer using Python. I’ll introduce you to a powerful plugin that I’ve developed, enabling seamless integration for Python-based applications. With this plugin, you’ll gain the ability to effortlessly print tickets from Python, regardless of your preferred framework—whether it’s the terminal, Flask, Tkinter, Django, or any other Python-supported platform. It provides extensive functionality, allowing you to print images, barcodes, text with accents, change fonts, rotate text, and much more, sending the ESC POS commands native to thermal printers. Join me as we dive into the world of thermal printing using Python, empowering you to generate professional-quality prints effortlessly. ...

July 5, 2023 · 6 min · 1268 words · Parzibyte

Free restaurant software

Today, I’m adding to the list of my free programs a software for managing restaurants. This program will allow you to register tables, payment methods, dishes (with photos), modify the currency, language, generate a printable menu, view the order, and even allow self-service for customers. Moreover, the free restaurant system I’ve created is compatible with Android (Termux), Windows, Linux, and Raspberry Pi. In fact, it is compatible with any platform where C and Go can compile, including an internet server. Throughout this post, I will show you all the features of this program, which is the largest one I’ve created so far, not because of its complexity but because of all the new things it offers, such as the installer, the multilingual section (with choice of locale and currency), ticket customization, logo, and dasboard. ...

June 29, 2023 · 9 min · 1796 words · Parzibyte

Passing parameters to Svelte function

In Svelte we can define functions that are going to be called when an event is triggered. For example, to call holaMundo on the click of an element we can indicate it as on:click={holaMundo} Sometimes it is necessary to pass parameters to that function inside a Svelte component, but we cannot indicate it like this: on:click={holaMundo(parameter)} Since that will execute the function as soon as the component is loaded, and won’t wait for the click. In this post I will show you how to pass arguments to functions in Svelte without calling them automatically. ...

June 28, 2023 · 3 min · 521 words · Parzibyte

Send bytes to thermal printer with C# and ESC POS

In this article I will show you how to use native C# to open a thermal printer as a file and send it bytes or data including ESC POS commands. Remember that I already have a plugin that allows you to print on thermal printers and exposes a consumable HTTP API from any programming language so that you can use it and not implement your own library, but if you want to see how it’s done, keep reading. ...

January 9, 2023 · 3 min · 542 words · Parzibyte