From 59548c8c209a83237dbdde4c26f07d08d2f56139 Mon Sep 17 00:00:00 2001 From: Ignacio Rivero Date: Mon, 23 Jun 2025 17:32:49 -0300 Subject: [PATCH] Added README.md --- README.md | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ bleh.jpg | Bin 0 -> 32508 bytes 2 files changed, 73 insertions(+) create mode 100644 README.md create mode 100644 bleh.jpg diff --git a/README.md b/README.md new file mode 100644 index 0000000..278cc13 --- /dev/null +++ b/README.md @@ -0,0 +1,73 @@ +# Bleh! + +![bleh cat](./bleh.jpg) + +**Bleh!** is a command-line utility to print images on the MXW01 Bluetooth thermal printer. +It supports 1-bit (1bpp) and 4-bit (4bpp) printing, various dithering algorithms, PNG preview output, and direct communication with the printer via BLE. + +## Features + +* Print PNG/JPG images (from file or stdin) in 1bpp or 4bpp mode +* Multiple dithering algorithms (Floyd-Steinberg, Bayer, Atkinson, etc.) +* Query printer status, battery, version, and more +* Output a PNG preview instead of printing (for integration or testing) +* Command-line interface with fine-grained options +* Works on Linux using BlueZ (via [go-ble/ble](https://github.com/go-ble/ble)) + +## Compiling + +On a Linux system, run: + +```sh +go get bleh +``` + +Then: + +``` +go build +``` + +## Usage + +```sh +bleh [options] +``` + +### Options + +| Option | Description | +| -------------------- | ----------------------------------------------------------------------------------- | +| `-i`, `--intensity` | Print intensity (0-100) (default: 80) | +| `-m`, `--mode` | Print mode: 1bpp or 4bpp (default: "1bpp") | +| `-d`, `--dither` | Dither method: none, floyd, bayer2x2, bayer4x4, bayer8x8, bayer16x16, atkinson, jjn | +| `-s`, `--status` | Query printer status | +| `-b`, `--battery` | Query battery level | +| `-v`, `--version` | Query printer version | +| `-p`, `--printtype` | Query print type | +| `-q`, `--querycount` | Query internal counter | +| `-E`, `--eject` | Eject paper by N lines | +| `-R`, `--retract` | Retract paper by N lines | +| `-o`, `--output` | Output PNG preview instead of printing. If value is "-", writes PNG to stdout. | +| `` | Path to PNG/JPG image to print, or "-" for stdin | + +### Example + +```sh +bleh -m 4bpp -d floyd ./myimage.png +``` + +## Requirements + +* Go 1.18+ +* BlueZ on Linux (for BLE support) +* Dependencies listed in `go.mod` (see source) + +## License + +This project is licensed under the terms of the GNU General Public License v3.0 or later. +Parts of the code were ported from [CatPrinterBLE](https://github.com/MaikelChan/CatPrinterBLE) and are licensed under the MIT License. +See the [`LICENSE`](./LICENSE) file for details. + +> **Disclaimer:** +> While a license was only added after the project’s initial commits, the current license applies retroactively to all previous commits of this repository. diff --git a/bleh.jpg b/bleh.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e7eb4b46a65b62138cf049f4672ea2920418c19c GIT binary patch literal 32508 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 B!uS9H literal 0 HcmV?d00001