A web interface to interact with a thermal printer
Go to file
2020-12-27 21:32:08 +01:00
configuration Added configuration files 2020-12-27 21:31:02 +01:00
docs Added documentation for the EPSON printer and the CUPS driver's archive, just in case someone needs it and the link dies 2020-12-27 21:29:29 +01:00
src Removed old code, added new files in src/ using classes for each moving part. 2020-12-26 23:34:22 +01:00
static Added the files of the project, 2018-10-14 23:12:47 +02:00
templates Added the files of the project, 2018-10-14 23:12:47 +02:00
.gitignore Updated the .gitignore 2020-12-26 23:35:55 +01:00
dither_it_cover.png Updated readme, add cover and completed instructions 2020-12-27 21:10:19 +01:00
LICENSE Initial commit 2018-10-14 22:58:04 +02:00
pip-selfcheck.json Added the files of the project, 2018-10-14 23:12:47 +02:00
README.md Fixed typo 2020-12-27 21:32:08 +01:00
requirements.txt Updated requirements. Use most recent version 2020-12-26 18:57:40 +01:00
users.json Added the files of the project, 2018-10-14 23:12:47 +02:00

Little Prynter


Print out shit from the cloud.

Ditherd image of a Adafruit Thermal Printer CC-BY oomlout

About

This project started when I got a Thermal Printer from a friend. I don't really know if you can do anything more, but I guess it's fun.

Requirements

To make this project work, you will need :

  • A Thermal Printer :
    • I used Adafruit's thermal printer at first, but it broke down. You can get it here.
    • I then used a EPSON TM-T2OIII. It's expensive, but it's also high quality, and has better CUPS and specific library support.
  • A Raspberry Pi or any computer with USB or Serial.
  • Some electric wires.
  • Some knowledge of the command line,
  • Some knowledge of Python.
  • 3h of your time, 5h if things need debugging.
  • git, virtualenv,pip and python >= 3.8.6.

Installation

For the EPSON TM-T20III, you can get the CUPS driver from here. It's not specific to the printer I've been using, so you can try with other printers.

With that, you can try out your printer and print normal text, images or pdf documents for example. LittlePrynter itself does not require any other software than the ones installed with it, i.e the ones listed in the requirements.txt file.

For the Adafruit printer, start by following the guide here to install the CUPS software needed to print images. If you want, you can install it via the command line, following this guide.

You can also get some information from here and here if you're stuck.

Then, setup the project :

git clone https://git.n07070.xyz/n07070/LittlePrynter
virtualenv LittlePrynter
cd LittlePrynter
pip install -r requirements.txt

You should see a folder named configuration. Enter it, and duplicate the file named config.toml.sample, and rename the copy to config.toml. Now, edit this file by following the comments in the file itself.

You can now start the web server with

export FLASK_APP=main.py
flask run

This command should start a web server with which you can test your configuration. If you plan on exposing your printer to the Internet, and give it an IP / URL, please, please, please, don't run it this way. Look at Flask's documentation and read about running a production server. It's a little more work, but it will prevent your computer/server being hacked in too easily.

Voilà !

More

If you liked this project, feel free to support my work !

Donations welcome ! :)

Licence

LittlePrynter
   Copyright (C) 2020  N07070

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <https://www.gnu.org/licenses/>.