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

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

Fix: Error en el servidor: sql: no rows in result set when using thermal printer plugin

In this post I will show you how to fix an error that appears in my thermal printer plugin that says: Error en el servidor: sql: no rows in result set. This error says that there are no rows in the database, and you may be wondering what printing has to do with a database, so that is exactly what I will discuss in this post. ...

November 16, 2021 · 3 min · 459 words · Parzibyte

Tetris game in JavaScript - Open source

In this post I will show you the Tetris game programmed in pure JavaScript, totally free and open source. This block game is programmed with JavaScript and uses canvas to paint the game. I also use Bootstrap for the layout of the buttons and the page in general, with a bit of SweetAlert for the alerts. Although it seems simple to do, it is one of the jobs that has cost me the most and of which I am most proud. It was complex (for me) to understand all the logic for collisions, rotations, row deletion, part movement, limits, etc. Among the features of the game we find: Sounds: background music, sound when the piece cannot be rotated, when a complete row is made and when the tetromino touches the ground Colors: each piece has a random color chosen at runtime Rotations: pieces can be rotated to accommodate them and accumulate points Mobile compatible: because it is web, I have added some buttons to be able to play it on mobile phones and tablets, but it can also be played with the keyboard Open source: you can modify the game, the board, the length, speed, pieces, rotations, etc. Tetris port: behaves like any normal tetris game Game pause: the game can be paused or resumed at any time Let’s see then the details of this game programmed in JS. Throughout the post I will show you how this game is programmed, I will also leave you a demo and the complete code which is FOSS. Note: figure, piece and tetromino will be used synonymously in this post. ...

November 12, 2020 · 17 min · 3536 words · Parzibyte

Connect 4 in JavaScript and HTML

In this post I will show you how to program the Connect 4 game by using JavaScript with HTML and Vue, with Bootstrap styles. It is the Connect 4 game but web version with a player versus player option, as well as player versus CPU that uses a small artificial intelligence. Throughout the post I will show you how the game works, what technologies I have used, styles, etc. I will also show you how to download the source code, as the game is totally free and open source. Finally I will leave you a demo to play connect 4 online. ...

August 24, 2020 · 17 min · 3559 words · Parzibyte